feat(ui): UI overhaul phase 9 — profile and organizations#45
Open
mkappworks wants to merge 25 commits into
Open
feat(ui): UI overhaul phase 9 — profile and organizations#45mkappworks wants to merge 25 commits into
mkappworks wants to merge 25 commits into
Conversation
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…ice edge cases Extracts bare-repo seeding into newTestRepoWithFilesAt so AggregateForUser's test can add a second repo under the same root without duplicating ~70 lines. Documents TopLanguageFor tie-break + empty behavior and AggregateForUser's limit <= 0 semantics, adds slog.WarnContext for per-repo Composition failures, and notes why the unit tests pass nil for repos. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Wires the new-repo form's init options through to actual repo content: when a user checks "Add a README", picks a .gitignore template, or selects a license, those files are committed as the initial commit on the default branch via a temp-worktree push. Empty options keep the prior empty-bare-repo behavior. Initial-commit failures are logged but do not fail the request since the repo already exists and is pushable. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…repos too Org-owned repos now seed an initial commit with the selected starter files, matching the personal-repo path. seedInitialCommit is refactored to a receiver-free function callable by both RepoService and OrgService, and resolves the worktree's actual HEAD ref for the push instead of assuming go-git's "master" default. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
… page load failures Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
… render-time checks) PinRepo now verifies the pinning user can read the target repo before pinning, returning 404 for unreadable repos. The render-time visibility filter for the pinned-repos list landed alongside the org page logging change in the prior commit. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…422 for repo-create user errors Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Brings phases 7 (gists), 8 (dashboard) and the thin-pack receive fix onto the phase-9 branch. Conflict resolutions: - migration 067 renumbered to 070 (main's 067 = add_pull_head_sha) - ActivityRow: adopted main's component (phase 8's is a superset — push commits, comment quotes, more event kinds); dropped phase-9's duplicate and its now-redundant eventToActivityRow/mapEventKind - user.templ: kept main's rich userReposTab (phase 8 Repositories tab) under phase-9's 4-tab nav; Overview tab keeps phase-9's pinned / heatmap / activity / orgs / languages layout - UserData: unioned main's RepoTab* fields with phase-9's Tab, Pinned, Heatmap, TopLangs, Orgs - page_user_handler.go: PageUser runs both the overview computation and main's buildRepoTabData - repo_service.go: kept both main's PushSummaries and phase-9's RepoInitOptions; Create retains phase-9's extended signature - retargeted phase-9's 3-arg heatmap call to main's renamed HeatmapLarge component Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Migration 071 adds name/company/location columns; migration 072 adds notify_pr_review/notify_issue_assigned/notify_mention/notify_watched/ notify_weekly_digest. User model picks up the matching struct fields so later layers can read them. Defaults are additive — no backfill needed. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…lates Expands the license picker on repo creation beyond MIT. Each license text is embedded via the existing repotemplates package; the service registry and unit test pick up the new keys. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
UserStore now reads/writes name, company, location, and the five notify_* flags introduced in migrations 071/072. UserService exposes matching update entry points the settings handlers can call. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Collapses notification_settings, oauth_apps, saved_replies, security, and tokens pages into one settings.templ with tabbed sections. New settings_helpers.go centralises error-code lookup and avatar-initial rendering; viewmodels_settings.go is widened to carry every section's data through to the unified view. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…+ orgs Handlers and router now target the unified settings page and consume the new profile + granular-notify fields end-to-end. Shared layout, account subnav, and checkbox component pick up the Phase 9 visual treatment; profile, organizations, new-organization, repo-new, notifications, and oauth-authorize views align with the redesigned mockups. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Phase 9 of the UI overhaul: redesigns the user profile and organizations
surfaces, consolidates five standalone settings pages into one tabbed
view, and adds profile/notification controls and richer repo-init license
options to back the new mockups end-to-end.
Closes #
Changes
users— migrations 071/072 addname,company,location, and five granularnotify_*flags; user model, store, andservice expose them.
Unlicense join MIT in the license picker on new-repo creation.
notification_settings,oauth_apps,saved_replies,security, andtokenspages collapse into onetabbed
settings.templ; newsettings_helpers.gocentralises error-code lookup and avatar-initial rendering.
targets the unified page and reads/writes the new user fields; routes
in
internal/router/router.goupdated accordingly.the Phase 9 treatment; profile, organizations, new-organization,
repo-new, notifications, and oauth-authorize views are restyled.
Type of change
feat/...)Checklist
make lintpasses with no issuesgo test ./...passes.templfiles were changed,templ generatewas re-run and generated*_templ.gofiles are committed alongside their sourcestailwind/tailwind.config.jscontentglob was updated (no new template dirs)internal/router/router.goand listed inpageNamesmiddleware/setup.go(no pre-setup routes added)migrations/andmake migratewas run