+1
appview/models/repo.go
+1
appview/models/repo.go
+58
-3
appview/posthog/notifier.go
appview/notify/posthog/notifier.go
+58
-3
appview/posthog/notifier.go
appview/notify/posthog/notifier.go
·········+func (n *posthogNotifier) NewIssueComment(ctx context.Context, comment *models.IssueComment) {
+36
-6
appview/db/repos.go
+36
-6
appview/db/repos.go
············-row := e.QueryRow(`select did, name, knot, created, rkey, description from repos where at_uri = ?`, atUri)+row := e.QueryRow(`select id, did, name, knot, created, rkey, description from repos where at_uri = ?`, atUri)-if err := row.Scan(&repo.Did, &repo.Name, &repo.Knot, &createdAt, &repo.Rkey, &nullableDescription); err != nil {+if err := row.Scan(&repo.Id, &repo.Did, &repo.Name, &repo.Knot, &createdAt, &repo.Rkey, &nullableDescription); err != nil {······-err := rows.Scan(&repo.Did, &repo.Name, &repo.Knot, &repo.Rkey, &nullableDescription, &createdAt, &nullableSource)+err := rows.Scan(&repo.Id, &repo.Did, &repo.Name, &repo.Knot, &repo.Rkey, &nullableDescription, &createdAt, &nullableSource)···-err := row.Scan(&repo.Did, &repo.Name, &repo.Knot, &repo.Rkey, &nullableDescription, &createdAt, &nullableSource)+err := row.Scan(&repo.Id, &repo.Did, &repo.Name, &repo.Knot, &repo.Rkey, &nullableDescription, &createdAt, &nullableSource)
+51
appview/settings/settings.go
+51
appview/settings/settings.go
·········+s.Pages.Notice(w, "settings-notifications-success", "Notification preferences saved successfully.")
+4
-11
appview/pages/templates/errors/500.html
+4
-11
appview/pages/templates/errors/500.html
···<div class="w-16 h-16 mx-auto mb-4 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center">···-<div class="bg-yellow-50 dark:bg-yellow-900/20 border border-yellow-200 dark:border-yellow-800 rounded p-3 text-sm text-yellow-800 dark:text-yellow-200">
+173
appview/pages/templates/user/settings/notifications.html
+173
appview/pages/templates/user/settings/notifications.html
···+<div class="bg-white dark:bg-gray-800 p-6 rounded relative w-full mx-auto drop-shadow-sm dark:text-white">+Choose which notifications you want to receive when activity happens on your repositories and profile.+<div class="flex flex-col rounded border border-gray-200 dark:border-gray-700 divide-y divide-gray-200 dark:divide-gray-700 w-full">+<input type="checkbox" name="issue_commented" {{if .Preferences.IssueCommented}}checked{{end}}>+<input type="checkbox" name="email_notifications" {{if .Preferences.EmailNotifications}}checked{{end}}>
+13
-4
appview/pages/templates/layouts/fragments/topbar.html
+13
-4
appview/pages/templates/layouts/fragments/topbar.html
···<nav class="space-x-4 px-6 py-2 rounded-b bg-white dark:bg-gray-800 dark:text-white drop-shadow-sm">+<a href="/" hx-boost="true" class="text-2xl no-underline hover:no-underline flex items-center gap-2">+<span class="font-normal not-italic text-xs rounded bg-gray-100 dark:bg-gray-700 px-1 hidden md:inline">···<div class="absolute flex flex-col right-0 mt-4 p-4 rounded w-48 bg-white dark:bg-gray-800 dark:text-white border border-gray-200 dark:border-gray-700">···
+2
-2
appview/pages/templates/strings/put.html
+2
-2
appview/pages/templates/strings/put.html
···
-33
knotserver/git/git.go
-33
knotserver/git/git.go
······
-4
knotserver/http_util.go
-4
knotserver/http_util.go
+1
-1
appview/ingester.go
+1
-1
appview/ingester.go
···return fmt.Errorf("failed to find label def for key: %s, expected: %q", o.OperandKey, slices.Collect(maps.Keys(actx.Defs)))
+15
-1
appview/validator/label.go
+15
-1
appview/validator/label.go
···-func (v *Validator) ValidateLabelOp(labelDef *models.LabelDefinition, labelOp *models.LabelOp) error {+func (v *Validator) ValidateLabelOp(labelDef *models.LabelDefinition, repo *models.Repo, labelOp *models.LabelOp) error {
+4
-1
appview/validator/validator.go
+4
-1
appview/validator/validator.go
···
+5
-4
appview/models/label.go
+5
-4
appview/models/label.go
···
+1
-3
knotserver/git/tag.go
+1
-3
knotserver/git/tag.go
·········
+1
-1
knotserver/xrpc/repo_blob.go
+1
-1
knotserver/xrpc/repo_blob.go
···
+10
api/tangled/repotree.go
+10
api/tangled/repotree.go
···
+15
-17
appview/pages/markup/format.go
+15
-17
appview/pages/markup/format.go
······
+2
-2
appview/pages/templates/repo/fragments/readme.html
+2
-2
appview/pages/templates/repo/fragments/readme.html
···<div class="mt-4 rounded bg-white dark:bg-gray-800 drop-shadow-sm w-full mx-auto overflow-hidden">-<div class="px-4 py-2 bg-gray-50 dark:bg-gray-700 border-b border-gray-200 dark:border-gray-600 flex items-center gap-2">
+24
knotserver/xrpc/repo_tree.go
+24
knotserver/xrpc/repo_tree.go
·········
+19
lexicons/repo/tree.json
+19
lexicons/repo/tree.json
······
+7
-5
types/repo.go
+7
-5
types/repo.go
···
+224
appview/pages/templates/brand/brand.html
+224
appview/pages/templates/brand/brand.html
···+<main class="col-span-full md:col-span-10 bg-white dark:bg-gray-800 drop-shadow-sm rounded p-6 md:px-10">+Tangled's logo and mascot is <strong>Dolly</strong>, the first ever <em>cloned</em> mammal. Please+All assets are served as SVGs, and can be downloaded by right-clicking and clicking "Save image as".+<div class="border border-gray-200 dark:border-gray-700 p-8 sm:p-16 bg-gray-50 dark:bg-gray-100 rounded">+This is the preferred version of the logotype, featuring dark text and elements, ideal for light+<div class="border border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-100 p-8 sm:p-12 rounded">+<div class="border border-gray-200 dark:border-gray-700 p-8 sm:p-16 bg-gray-50 dark:bg-gray-100 rounded">
+13
-6
appview/pages/templates/legal/privacy.html
+13
-6
appview/pages/templates/legal/privacy.html
···+<main class="col-span-full md:col-span-10 bg-white dark:bg-gray-800 drop-shadow-sm rounded p-6 md:px-10">
+13
-6
appview/pages/templates/legal/terms.html
+13
-6
appview/pages/templates/legal/terms.html
···+<main class="col-span-full md:col-span-10 bg-white dark:bg-gray-800 drop-shadow-sm rounded p-6 md:px-10">
+1
-1
appview/pages/templates/user/fragments/followCard.html
+1
-1
appview/pages/templates/user/fragments/followCard.html
···-<div class="flex flex-col divide-y divide-gray-200 dark:divide-gray-700 border border-gray-200 dark:border-gray-700 rounded-sm"><div class="py-4 px-6 drop-shadow-sm rounded bg-white dark:bg-gray-800 flex items-center gap-4">
+4
-2
appview/config/config.go
+4
-2
appview/config/config.go
···
+13
-9
appview/db/email.go
+13
-9
appview/db/email.go
···+func GetEmailToDid(e Execer, emails []string, isVerifiedFilter bool) (map[string]string, error) {······
+7
appview/pages/templates/repo/fork.html
+7
appview/pages/templates/repo/fork.html
···<form hx-post="/{{ .RepoInfo.FullName }}/fork" class="space-y-12" hx-swap="none" hx-indicator="#spinner">+class="w-full p-2 border rounded bg-gray-100 dark:bg-gray-700 dark:text-white dark:border-gray-600" />
+140
appview/db/db.go
+140
appview/db/db.go
···+at_uri text generated always as ('at://' || owner_did || '/' || 'sh.tangled.repo.pull' || '/' || rkey) stored,+state integer not null default 0 check (state in (0, 1, 2, 3)), -- closed, open, merged, deleted
+1
-1
appview/pages/templates/repo/fragments/labelPanel.html
+1
-1
appview/pages/templates/repo/fragments/labelPanel.html
+26
appview/pages/templates/repo/fragments/participants.html
+26
appview/pages/templates/repo/fragments/participants.html
···+class="rounded-full h-8 w-8 mr-1 border-2 border-gray-100 dark:border-gray-900 z-{{sub 5 $i}}0"
+1
-27
appview/pages/templates/repo/issues/issue.html
+1
-27
appview/pages/templates/repo/issues/issue.html
······-class="rounded-full h-8 w-8 mr-1 border-2 border-gray-100 dark:border-gray-900 z-{{sub 5 $i}}0"
+30
-12
appview/pages/templates/repo/pulls/pull.html
+30
-12
appview/pages/templates/repo/pulls/pull.html
···+<section class="bg-white dark:bg-gray-800 p-6 rounded relative w-full mx-auto dark:text-white">···-<div class="rounded drop-shadow-sm bg-white dark:bg-gray-800 p-2 text-gray-500 dark:text-gray-400">+<div class="flex-1 rounded drop-shadow-sm bg-white dark:bg-gray-800 p-2 text-gray-500 dark:text-gray-400">······-<div id="comment-{{$c.ID}}" class="bg-white dark:bg-gray-800 rounded drop-shadow-sm py-2 px-4 relative w-full md:max-w-3/5 md:w-fit">+<div id="comment-{{$c.ID}}" class="bg-white dark:bg-gray-800 rounded drop-shadow-sm py-2 px-4 relative w-full">
+7
appview/pages/templates/repo/pulls/pulls.html
+7
appview/pages/templates/repo/pulls/pulls.html
···
+8
-48
appview/notify/db/db.go
+8
-48
appview/notify/db/db.go
························
+18
-13
appview/db/notifications.go
+18
-13
appview/db/notifications.go
······
+29
-36
appview/notifications/notifications.go
+29
-36
appview/notifications/notifications.go
·········-notifications, err := db.GetNotificationsWithEntities(n.db, page, db.FilterEq("recipient_did", userDid))···
+48
-15
appview/pages/templates/notifications/list.html
+48
-15
appview/pages/templates/notifications/list.html
···-<div class="bg-white dark:bg-gray-800 p-6 rounded relative w-full mx-auto drop-shadow-sm dark:text-white">-<p class="text-gray-600 dark:text-gray-400">When you receive notifications, they'll appear here.</p>+<div class="bg-white dark:bg-gray-800 p-6 rounded relative w-full mx-auto drop-shadow-sm dark:text-white">+<p class="text-gray-600 dark:text-gray-400">When you receive notifications, they'll appear here.</p>+class="btn flex items-center gap-2 no-underline hover:no-underline dark:text-white dark:hover:bg-gray-700"+class="btn flex items-center gap-2 no-underline hover:no-underline dark:text-white dark:hover:bg-gray-700"
+1
-1
appview/pagination/page.go
+1
-1
appview/pagination/page.go
+27
-208
appview/pages/templates/notifications/fragments/item.html
+27
-208
appview/pages/templates/notifications/fragments/item.html
···-w-full mx-auto rounded drop-shadow-sm dark:text-white bg-white dark:bg-gray-800 px-2 md:px-6 py-4 transition-colors-{{if not .Read}}bg-blue-50 dark:bg-blue-900/20 border border-blue-500 dark:border-sky-800{{end}}+w-full mx-auto rounded drop-shadow-sm dark:text-white bg-white dark:bg-gray-800 px-2 md:px-6 py-4 transition-colors+{{if not .Read}}bg-blue-50 dark:bg-blue-800/20 border border-blue-500 dark:border-sky-800{{end}}+<span class="text-sm text-gray-500 dark:text-gray-400">{{ template "notificationSummary" . }}</span>-<span class="text-sm text-gray-500 dark:text-gray-400">{{ template "notificationSummary" . }}</span>···-<span class="font-medium text-gray-900 dark:text-white">{{resolve .Repo.Did}}/{{.Repo.Name}}</span>-<span class="font-medium text-gray-900 dark:text-white">{{resolve .Repo.Did}}/{{.Repo.Name}}</span>-<span class="{{if not .Read}}text-blue-600 dark:text-blue-400{{else}}text-gray-500 dark:text-gray-400{{end}}">
+1
-1
nix/pkgs/knot-unwrapped.nix
+1
-1
nix/pkgs/knot-unwrapped.nix
+2
-2
appview/db/pulls.go
+2
-2
appview/db/pulls.go
······
+1
-1
appview/pages/templates/repo/fragments/cloneDropdown.html
+1
-1
appview/pages/templates/repo/fragments/cloneDropdown.html
+1
-1
docs/spindle/pipeline.md
+1
-1
docs/spindle/pipeline.md
···- `branch`: This is a **required** field that defines which branches the workflow should run for. If used with the `push` event, commits to the branch(es) listed here will trigger the workflow. If used with the `pull_request` event, updates to pull requests targeting the branch(es) listed here will trigger the workflow. This field has no effect with the `manual` event.-For example, if you'd like define a workflow that runs when commits are pushed to the `main` and `develop` branches, or when pull requests that target the `main` branch are updated, or manually, you can do so with:+For example, if you'd like to define a workflow that runs when commits are pushed to the `main` and `develop` branches, or when pull requests that target the `main` branch are updated, or manually, you can do so with:
+1
-1
knotserver/config/config.go
+1
-1
knotserver/config/config.go
···
+3
appview/pages/templates/layouts/base.html
+3
appview/pages/templates/layouts/base.html
···<link rel="preload" href="/static/fonts/InterVariable.woff2" as="font" type="font/woff2" crossorigin />
+1
appview/pages/templates/user/completeSignup.html
+1
appview/pages/templates/user/completeSignup.html
+1
appview/pages/templates/user/signup.html
+1
appview/pages/templates/user/signup.html
···
+23
appview/state/state.go
+23
appview/state/state.go
···
+34
appview/db/language.go
+34
appview/db/language.go
······+func UpdateRepoLanguages(tx *sql.Tx, repoAt syntax.ATURI, ref string, langs []models.RepoLanguage) error {
+14
-1
appview/state/knotstream.go
+14
-1
appview/state/knotstream.go
···