Merge origin/main into payments.
2 months ago
371 files changed
- .opengit/workflows/ci.yml+3−4
- README.md+26−30
- apps/community/app/layout.tsx+8−3
- apps/playground/app/components/[slug]/page.tsx+109−0
- apps/playground/app/components/page.tsx+54−0
- apps/playground/app/layout.tsx+45−0
- apps/playground/app/page.tsx+47−0
- apps/playground/components/playground-shell.tsx+21
−0
apps/playground/components/playground-sidebar.tsx+108−0apps/playground/components/preview-frame.tsx+80−0apps/playground/components/providers.tsx+14−0apps/playground/components/theme-toggle.tsx+25−0apps/playground/eslint.config.js+4−0apps/playground/lib/component-examples/accordion.tsx+50−0apps/playground/lib/component-examples/alert.tsx+67−0apps/playground/lib/component-examples/app-shell.tsx+218−0apps/playground/lib/component-examples/avatar.tsx+32−0apps/playground/lib/component-examples/badge.tsx+75−0apps/playground/lib/component-examples/breadcrumb.tsx+49−0apps/playground/lib/component-examples/button.tsx+110−0apps/playground/lib/component-examples/card.tsx+94−0apps/playground/lib/component-examples/checkbox.tsx+53−0apps/playground/lib/component-examples/dialog-client.tsx+37−0apps/playground/lib/component-examples/dialog.tsx+31−0apps/playground/lib/component-examples/drawer-client.tsx+108−0apps/playground/lib/component-examples/drawer.tsx+63−0apps/playground/lib/component-examples/input-group.tsx+44−0apps/playground/lib/component-examples/input.tsx+48−0apps/playground/lib/component-examples/label.tsx+25−0apps/playground/lib/component-examples/menu.tsx+77−0apps/playground/lib/component-examples/popover.tsx+42−0apps/playground/lib/component-examples/radio-group.tsx+40−0apps/playground/lib/component-examples/select.tsx+49−0apps/playground/lib/component-examples/separator.tsx+38−0apps/playground/lib/component-examples/skeleton.tsx+31−0apps/playground/lib/component-examples/spinner.tsx+26−0apps/playground/lib/component-examples/switch.tsx+43−0apps/playground/lib/component-examples/tabs.tsx+74−0apps/playground/lib/component-examples/textarea.tsx+39−0apps/playground/lib/component-examples/toast-client.tsx+46−0apps/playground/lib/component-examples/toast.tsx+23−0apps/playground/lib/component-examples/toggle-group.tsx+43−0apps/playground/lib/component-examples/toggle.tsx+34−0apps/playground/lib/component-examples/toolbar.tsx+47−0apps/playground/lib/component-examples/tooltip.tsx+32−0apps/playground/lib/manifest.ts+139−0apps/playground/lib/types.ts+31−0apps/playground/next-env.d.ts+6−0apps/playground/next.config.mjs+13−0apps/playground/package.json+34−0apps/playground/postcss.config.mjs+1−0apps/playground/tsconfig.json+13−0apps/web/.env.example+11−8apps/web/app/(home)/activity-feed-skeleton.tsx+22−0apps/web/app/(home)/activity-feed.tsx+26−0apps/web/app/(home)/activity-row.tsx+140−0apps/web/app/(home)/ci-health.tsx+103−0apps/web/app/(home)/feed-sidebar-skeleton.tsx+22−0apps/web/app/(home)/feed-sidebar.tsx+179−0apps/web/app/(home)/home-right-rail.tsx+41−0apps/web/app/(home)/layout.tsx+34−0apps/web/app/(home)/leaderboard-panel.tsx+21−0apps/web/app/(home)/leaderboard.tsx+124−0apps/web/app/(home)/page.tsx+35−0apps/web/app/(home)/trending-repos.tsx+49−0apps/web/app/[username]/[repository]/@modal/(.)pulls/new/loading.tsx+5−0apps/web/app/[username]/[repository]/@modal/(.)pulls/new/page.tsx+34−0apps/web/app/[username]/[repository]/@modal/default.tsx+3−0apps/web/app/[username]/[repository]/blob/[...path]/page.tsx+16−9apps/web/app/[username]/[repository]/campfire/campfire-room.tsx+74−64apps/web/app/[username]/[repository]/campfire/campfire-thread-ref-card.tsx+57−38apps/web/app/[username]/[repository]/campfire/page.tsx+2−6apps/web/app/[username]/[repository]/docs/docs-page.tsx+52−56apps/web/app/[username]/[repository]/fork/fork-repository-form.tsx+67−149apps/web/app/[username]/[repository]/insights/page.tsx+115−106apps/web/app/[username]/[repository]/issues/[number]/issue-conversation.tsx+1−1apps/web/app/[username]/[repository]/issues/[number]/issue-detail.tsx+244−0apps/web/app/[username]/[repository]/issues/[number]/issue-linked-pull-requests.tsx+91−0apps/web/app/[username]/[repository]/issues/[number]/page.tsx+6−215apps/web/app/[username]/[repository]/issues/issue-forms.tsx+2−1apps/web/app/[username]/[repository]/issues/page.tsx+46−31apps/web/app/[username]/[repository]/layout.tsx+77−0apps/web/app/[username]/[repository]/loading.tsx+23−0apps/web/app/[username]/[repository]/page.tsx+9−515apps/web/app/[username]/[repository]/pulls/[number]/autopilot/autopilot-run-client.tsx+85−36apps/web/app/[username]/[repository]/pulls/[number]/conversation-checks.tsx+138−0apps/web/app/[username]/[repository]/pulls/[number]/helpers.ts+94−0apps/web/app/[username]/[repository]/pulls/[number]/page.tsx+50−834apps/web/app/[username]/[repository]/pulls/[number]/pull-request-conversation.tsx+54−165apps/web/app/[username]/[repository]/pulls/[number]/pull-request-detail.tsx+769−0apps/web/app/[username]/[repository]/pulls/[number]/pull-request-files-body.tsx+78−0apps/web/app/[username]/[repository]/pulls/[number]/pull-request-files-chrome.tsx+13−30apps/web/app/[username]/[repository]/pulls/[number]/pull-request-files-review.tsx+18−9apps/web/app/[username]/[repository]/pulls/[number]/pull-request-forms.tsx+67−18apps/web/app/[username]/[repository]/pulls/[number]/pull-request-merge-box.tsx+55−53apps/web/app/[username]/[repository]/pulls/[number]/pull-request-sidebar.tsx+158−0apps/web/app/[username]/[repository]/pulls/[number]/pull-request-stack-panel.tsx+102−0apps/web/app/[username]/[repository]/pulls/[number]/sidebar-checks.tsx+39−0apps/web/app/[username]/[repository]/pulls/new/actions.ts+44−0apps/web/app/[username]/[repository]/pulls/new/create-pull-request-form.tsx+66−25apps/web/app/[username]/[repository]/pulls/new/load-new-pull-request.ts+106−0apps/web/app/[username]/[repository]/pulls/new/new-pull-request-modal.tsx+102−0apps/web/app/[username]/[repository]/pulls/new/page.tsx+19−98apps/web/app/[username]/[repository]/pulls/new/pull-request-dialog-chrome.tsx+51−0apps/web/app/[username]/[repository]/pulls/page.tsx+71−49apps/web/app/[username]/[repository]/repository-branch-switcher.tsx+54−20apps/web/app/[username]/[repository]/repository-contributors.tsx+79−0apps/web/app/[username]/[repository]/repository-file-tree.tsx+8−3apps/web/app/[username]/[repository]/repository-home.tsx+734−0apps/web/app/[username]/[repository]/repository-languages.tsx+78−0apps/web/app/[username]/[repository]/repository-latest-commit.tsx+2−3apps/web/app/[username]/[repository]/repository-layout-shell.tsx+61−0apps/web/app/[username]/[repository]/repository-scroll-header.tsx+0−193apps/web/app/[username]/[repository]/repository-shell.tsx+13−63apps/web/app/[username]/[repository]/repository-tabs.tsx+80−21apps/web/app/[username]/[repository]/settings/_components/repository-settings-nav.tsx+91−108apps/web/app/[username]/[repository]/settings/_components/repository-settings-skeletons.tsx+38−0apps/web/app/[username]/[repository]/settings/_lib/load-settings.ts+3−26apps/web/app/[username]/[repository]/settings/actions.ts+1−1apps/web/app/[username]/[repository]/settings/general/page.tsx+59−21apps/web/app/[username]/[repository]/settings/layout.tsx+2−15apps/web/app/[username]/[repository]/settings/repository-settings-forms.tsx+69−54apps/web/app/[username]/actions.ts+33−0apps/web/app/[username]/contribution-graph.tsx+77−0apps/web/app/[username]/contribution-stats.tsx+40−0apps/web/app/[username]/edit-profile-button.tsx+32−0apps/web/app/[username]/gitty-actions.ts+28−0apps/web/app/[username]/gitty-card.tsx+112−0apps/web/app/[username]/gitty-controls.tsx+63−0apps/web/app/[username]/helpers.ts+118−0apps/web/app/[username]/page.tsx+176−84apps/web/app/[username]/profile-bio.tsx+97−0apps/web/app/[username]/settings/_components/organization-settings-nav.tsx+9−9apps/web/app/[username]/settings/_lib/load-settings.ts+8−66apps/web/app/[username]/settings/actions.ts+61−52apps/web/app/[username]/settings/danger/page.tsx+4−12apps/web/app/[username]/settings/general/page.tsx+18−39apps/web/app/[username]/settings/layout.tsx+4−5apps/web/app/[username]/settings/members/page.tsx+49−54apps/web/app/[username]/settings/organization-sections.tsx+122−0apps/web/app/[username]/settings/organization-stack-section.tsx+0−103apps/web/app/api/auth/[...all]/route.ts+5−0apps/web/app/api/repos/[repoId]/commits/[sha]/checks/route.ts+56−0apps/web/app/api/unicorn-scene/route.ts+21−0apps/web/app/api/viewer/route.ts+41−0apps/web/app/ci-lab/page.tsx+125−0apps/web/app/ci/runs/[runId]/jobs/[jobId]/page.tsx+45−41apps/web/app/dashboard/page.tsx+0−351apps/web/app/forgot-password/page.tsx+101−0apps/web/app/gitty-lab/page.tsx+115−0apps/web/app/handler/[...stack]/page.tsx+0−12apps/web/app/home/home-readme-section.tsx+1−6apps/web/app/home/home-readme.tsx+9−5apps/web/app/icon.svg+23−0apps/web/app/layout.tsx+37−13apps/web/app/onboarding/actions.ts+14−16apps/web/app/onboarding/ensure-onboarded.ts+32−28apps/web/app/onboarding/onboarding-exit.ts+46−0apps/web/app/onboarding/onboarding-experience.tsx+175−428apps/web/app/onboarding/onboarding-form.tsx+43−117apps/web/app/onboarding/onboarding-identity-preview.tsx+170−0apps/web/app/onboarding/onboarding-page-shell.tsx+10−0apps/web/app/onboarding/onboarding-xplode.ts+0−39apps/web/app/onboarding/page.tsx+4−9apps/web/app/onboarding/username-availability/route.ts+2−2apps/web/app/page.tsx+0−160apps/web/app/repositories/import/github/actions.ts+56−0apps/web/app/repositories/import/github/github-import-form.tsx+377−0apps/web/app/repositories/import/github/page.tsx+30−0apps/web/app/repositories/new/actions.ts+3−4apps/web/app/repositories/new/create-repository-form.tsx+32−7apps/web/app/repositories/new/page.tsx+6−7apps/web/app/reset-password/page.tsx+131−0apps/web/app/settings/account/account-settings-sections.tsx+2−12apps/web/app/settings/account/account-settings-sections/api-keys.tsx+0−182apps/web/app/settings/account/account-settings-sections/auth.tsx+98−480apps/web/app/settings/account/account-settings-sections/connections.tsx+143−0apps/web/app/settings/account/account-settings-sections/display-preferences.tsx+3−6apps/web/app/settings/account/account-settings-sections/notifications.tsx+0−59apps/web/app/settings/account/account-settings-sections/payments.tsx+0−265apps/web/app/settings/account/account-settings-sections/profile.tsx+39−45apps/web/app/settings/account/account-settings-sections/sessions.tsx+70−63apps/web/app/settings/account/account-settings-sections/settings.tsx+38−37apps/web/app/settings/account/account-settings-sections/shared.tsx+20−150apps/web/app/settings/account/account-settings-sections/teams.tsx+38−426apps/web/app/settings/account/api-keys/api-keys-client.tsx+0−30apps/web/app/settings/account/api-keys/page.tsx+0−7apps/web/app/settings/account/connections/page.tsx+11−0apps/web/app/settings/account/layout-preference-actions.ts+6−15apps/web/app/settings/account/layout.tsx+1−1apps/web/app/settings/account/notifications/page.tsx+0−11apps/web/app/settings/account/payments/page.tsx+0−52apps/web/app/settings/account/settings/page.tsx+2−9apps/web/app/settings/account/teams/new/actions.ts+10−26apps/web/app/settings/account/teams/new/create-organization-form.tsx+10−6apps/web/app/settings/developer/_components/git-token-forms.tsx+1−1apps/web/app/settings/developer/_components/git-token-list-action.ts+9−0apps/web/app/settings/developer/page.tsx+1−1apps/web/app/settings/layout.tsx+7−27apps/web/app/sign-in/page.tsx+49−0apps/web/app/sign-in/sign-in-form.tsx+129−0apps/web/app/sign-up/page.tsx+3−3apps/web/app/sign-up/sign-up-form.tsx+13−6apps/web/app/workspace/create-new-menu.tsx+74−0apps/web/app/workspace/dashboard-detail.tsx+106−0apps/web/app/workspace/dashboard-list-skeleton.tsx+101−0apps/web/app/workspace/dashboard-list.tsx+183−0apps/web/app/workspace/dashboard-row.tsx+276−0apps/web/app/workspace/dashboard-tabs.tsx+103−0apps/web/app/workspace/dashboard-toolbar.tsx+36−0apps/web/app/workspace/detail-panel-chrome.tsx+54−0apps/web/app/workspace/detail-panel-skeleton.tsx+47−0apps/web/app/workspace/detail-panel.tsx+213−0apps/web/app/workspace/helpers.ts+116−0apps/web/app/workspace/import-from-github-menu-item.tsx+20−0apps/web/app/workspace/layout.tsx+123−0apps/web/app/workspace/load-dashboard-lists.ts+75−0apps/web/app/workspace/page.tsx+30−0apps/web/app/workspace/preview-width.ts+8−0apps/web/app/workspace/repo-picker-submenu.tsx+136−0apps/web/app/workspace/section-header.tsx+33−0apps/web/app/workspace/warm-preview.ts+38−0apps/web/components/account-settings/account-settings-modal.tsx+252−0apps/web/components/account-settings/git-tokens-section.tsx+117−0apps/web/components/app-shell.tsx+37−0apps/web/components/app-site-chrome.tsx+154−35apps/web/components/ci/check-elapsed.tsx+49−0apps/web/components/ci/check-row.tsx+53−0apps/web/components/ci/check-status-indicator.tsx+123−0apps/web/components/ci/live-checks.tsx+127−0apps/web/components/client-only.tsx+33−0apps/web/components/command-menu-loader.tsx+53−0apps/web/components/command-menu.tsx+288−0apps/web/components/conversation/campfire-mention-timeline-card.tsx+6−6apps/web/components/conversation/comment-composer-shared.tsx+9−7apps/web/components/conversation/conversation-chrome.tsx+2−2apps/web/components/conversation/conversation-meta.tsx+1−1apps/web/components/conversation/conversation-quote-reply.tsx+14−6apps/web/components/conversation/pr-autopilot-timeline.tsx+17−17apps/web/components/conversation/reply-content.tsx+9−11apps/web/components/conversation/timeline-primitives.tsx+11−9apps/web/components/dev-floating-panel.tsx+13−10apps/web/components/diffs/code-view-wrapper.tsx+9−1apps/web/components/diffs/diff-annotation-card.tsx+4−3apps/web/components/github-import-modal.tsx+108−0apps/web/components/layout-preference-preview.tsx+8−8apps/web/components/legal-page-shell.tsx+2−2apps/web/components/markdown/markdown-editor.tsx+481−273apps/web/components/open-git-mark.tsx+40−0apps/web/components/open-git-user-button.tsx+77−57apps/web/components/open-git-wordmark.tsx+50−0apps/web/components/organization-menu.tsx+150−0apps/web/components/pixel-icon.tsx+26−0apps/web/components/repository-home-doc-panel.tsx+13−42apps/web/components/resource-list-row.tsx+34−4apps/web/components/resource-query-filter-bar.tsx+14−9apps/web/components/settings-nav.tsx+48−91apps/web/components/site-scroll-header.tsx+0−124apps/web/components/stack-profile-image-editor.tsx+0−4apps/web/components/title-field.tsx+70−0apps/web/components/truncated-text.tsx+58−0apps/web/components/unicorn-background.tsx+20−0apps/web/components/viewer-context.tsx+107−0apps/web/components/workbench-tabs/canonical-target.ts+3−3apps/web/components/workbench-tabs/workbench-tab-bar.tsx+22−26apps/web/components/workbench-tabs/workbench-tabs-provider.tsx+1−1apps/web/db/activity.ts+272−0apps/web/db/auth-schema.ts+90−0apps/web/db/ci.ts+64−0apps/web/db/contributions.ts+234−0apps/web/db/gitty.ts+242−0apps/web/db/home-ci.ts+139−0apps/web/db/home-leaderboard.ts+243−0apps/web/db/home-trending.ts+147−0apps/web/db/namespaces.ts+47−77apps/web/db/organization-memberships.ts+86−330apps/web/db/pr-autopilot.ts+32−0apps/web/db/repositories.ts+31−26apps/web/db/repository-authorization.ts+6−42apps/web/db/repository-index.ts+77−1apps/web/db/schema.ts+60−1apps/web/db/user-profiles.ts+18−5apps/web/drizzle/0028_fuzzy_synch.sql+1−0apps/web/drizzle/0029_happy_kronos.sql+22−0apps/web/drizzle/0030_better_auth.sql+54−0apps/web/drizzle/meta/0028_snapshot.json+8−57apps/web/drizzle/meta/0029_snapshot.json+167−283apps/web/drizzle/meta/0030_snapshot.json+7119−0apps/web/drizzle/meta/_journal.json+11−4apps/web/hexclave.config.ts+0−37apps/web/lib/auth-client.ts+7−0apps/web/lib/auth-server.ts+33−0apps/web/lib/auth.ts+87−0apps/web/lib/email.ts+46−0apps/web/lib/floating-card.ts+6−0apps/web/lib/github/repositories.ts+360−0apps/web/lib/github/shared.ts+25−0apps/web/lib/gitty/catalog.ts+27−0apps/web/lib/gitty/engine.ts+78−0apps/web/lib/gitty/scoring.ts+16−0apps/web/lib/markdown/markdown.test.ts+34−0apps/web/lib/markdown/markdown.ts+84−3apps/web/lib/pull-requests/autopilot/run.ts+71−14apps/web/lib/settings/layout-preference.ts+1−21apps/web/lib/shared/cache.ts+25−0apps/web/lib/shared/relative-time.ts+9−15apps/web/next-env.d.ts+1−1apps/web/next.config.mjs+6−4apps/web/package.json+12−6apps/web/public/open-git-mark.svg+23−0apps/web/scripts/migrate-hexclave-users.ts+179−0apps/web/scripts/mock-merge-pr.ts+94−0apps/web/scripts/seed-local-dev.ts+98−444apps/web/scripts/seed-repo-files.ts+132−0apps/web/stack.ts+0−24deploy/.env.example+10−7deploy/Dockerfile+2−4deploy/README.md+4−3deploy/docker-compose.app.yml+7−4deploy/docker-compose.single.yml+7−4docs/dashboard-list-pattern.md+64−0docs/ui-audit.md+619−0packages/ui/components.json+2−1packages/ui/package.json+6−0packages/ui/src/components/accordion.tsx+15−15packages/ui/src/components/alert-dialog.tsx+1−1packages/ui/src/components/app-shell.tsx+60−0packages/ui/src/components/appearance-menu-section.tsx+79−0packages/ui/src/components/autocomplete.tsx+65−62packages/ui/src/components/badge.tsx+1−1packages/ui/src/components/blob-avatar.tsx+48−0packages/ui/src/components/breadcrumb.tsx+21−18packages/ui/src/components/button-variants.tsx+2−2packages/ui/src/components/calendar.tsx+31−32packages/ui/src/components/combobox.tsx+87−87packages/ui/src/components/command-menu-context.tsx+81−0packages/ui/src/components/command.tsx+47−41{apps/web => packages/ui/src}/components/copy-to-clipboard-button.tsx+3−3packages/ui/src/components/dialog.tsx+49−49packages/ui/src/components/dotm-square-3.tsx+63−0packages/ui/src/components/dotmatrix-core.tsx+958−0packages/ui/src/components/dotmatrix-loader.css+1121−0packages/ui/src/components/drawer.tsx+157−127packages/ui/src/components/gitty-sprite.tsx+441−0packages/ui/src/components/menu.tsx+68−58packages/ui/src/components/nested-panel.tsx+53−0packages/ui/src/components/number-field.tsx+35−35packages/ui/src/components/pagination.tsx+26−26packages/ui/src/components/pixel-icons.tsx+570−0packages/ui/src/components/popover.tsx+1−1packages/ui/src/components/select.tsx+53−53packages/ui/src/components/sheet.tsx+49−49packages/ui/src/components/sidebar.tsx+3−3packages/ui/src/components/spinner.tsx+15−5packages/ui/src/components/table.tsx+1−1{apps/web => packages/ui/src}/components/theme-provider.tsx+0−0packages/ui/src/components/toast.tsx+59−59packages/ui/src/components/toggle.tsx+1−1packages/ui/src/components/user-avatar.tsx+20−0{apps/web => packages/ui/src}/components/user-identity-orb.tsx+4−21packages/ui/src/hooks/dotmatrix-hooks.ts+224−0packages/ui/src/lib/floating-card.ts+18−0packages/ui/src/lib/gitty.ts+200−0packages/ui/src/lib/identity-entropy.ts+27−0packages/ui/src/styles/globals.css+294−80pnpm-lock.yaml+1421−4071scripts/gen-pixel-icons.mjs+165−0stack-teams-export-2026-07-12.json+7−0stack-users-export-2026-07-12.json+56−0to-do.md+76−0turbo.json+7−8