+8
-6
.air/appview.toml
+8
-6
.air/appview.toml
···-cmd = "tailwindcss -i input.css -o ./appview/pages/static/tw.css && go build -o .bin/app ./cmd/appview/main.go"
+11
.air/knot.toml
+11
.air/knot.toml
···+cmd = 'go build -ldflags "-X tangled.org/core/knotserver.version=$(git describe --tags --long)" -o out/knot.out cmd/knot/main.go'
-7
.air/knotserver.toml
-7
.air/knotserver.toml
+10
.air/spindle.toml
+10
.air/spindle.toml
+39
-2
appview/db/db.go
+39
-2
appview/db/db.go
···create index if not exists idx_notifications_recipient_created on notifications(recipient_did, created desc);create index if not exists idx_notifications_recipient_read on notifications(recipient_did, read);···alter table notification_preferences add column user_mentioned integer not null default 1;
+4
-2
appview/db/pipeline.go
+4
-2
appview/db/pipeline.go
······
+3
-3
appview/db/repos.go
+3
-3
appview/db/repos.go
···
+39
-99
appview/db/star.go
+39
-99
appview/db/star.go
·········-_, err := e.Exec(`delete from stars where starred_by_did = ? and repo_at = ?`, starredByDid, repoAt)-_, err := e.Exec(`delete from stars where starred_by_did = ? and rkey = ?`, starredByDid, rkey)······-func GetStarStatuses(e Execer, userDid string, repoAts []syntax.ATURI) (map[string]bool, error) {+func GetStarStatuses(e Execer, userDid string, subjectAts []syntax.ATURI) (map[string]bool, error) {···············// GetTopStarredReposLastWeek returns the top 8 most starred repositories from the last week
+3
-13
appview/db/timeline.go
+3
-13
appview/db/timeline.go
···func getTimelineStars(e Execer, limit int, loggedInUserDid string, userIsFollowing []string) ([]models.TimelineEvent, error) {···
+3
-3
appview/ingester.go
+3
-3
appview/ingester.go
···
+14
-5
appview/models/star.go
+14
-5
appview/models/star.go
···
+1
-1
appview/models/string.go
+1
-1
appview/models/string.go
+1
-1
appview/models/timeline.go
+1
-1
appview/models/timeline.go
+6
-1
appview/notify/db/db.go
+6
-1
appview/notify/db/db.go
·········
+2
-2
appview/notify/posthog/notifier.go
+2
-2
appview/notify/posthog/notifier.go
······
+2
-1
appview/pages/funcmap.go
+2
-1
appview/pages/funcmap.go
······
+1
-1
appview/pages/markup/extension/atlink.go
+1
-1
appview/pages/markup/extension/atlink.go
+4
-2
appview/pages/markup/markdown.go
+4
-2
appview/pages/markup/markdown.go
······
+8
-6
appview/pages/pages.go
+8
-6
appview/pages/pages.go
······
+28
appview/pages/templates/fragments/starBtn.html
+28
appview/pages/templates/fragments/starBtn.html
···
+4
-1
appview/pages/templates/layouts/repobase.html
+4
-1
appview/pages/templates/layouts/repobase.html
···
+3
-1
appview/pages/templates/repo/blob.html
+3
-1
appview/pages/templates/repo/blob.html
···-<div id="blob-contents" class="whitespace-pre peer-target:bg-yellow-200 dark:peer-target:bg-yellow-900">{{ code .BlobView.Contents .Path | escapeHtml }}</div>+<div id="blob-contents" class="whitespace-pre peer-target:bg-yellow-200 dark:peer-target:bg-yellow-900">{{ code .BlobView.Contents .Path | escapeHtml }}</div>
+1
-1
appview/pages/templates/repo/compare/compare.html
+1
-1
appview/pages/templates/repo/compare/compare.html
+1
appview/pages/templates/repo/fork.html
+1
appview/pages/templates/repo/fork.html
-26
appview/pages/templates/repo/fragments/repoStar.html
-26
appview/pages/templates/repo/fragments/repoStar.html
···
+19
-8
appview/pages/templates/repo/issues/issues.html
+19
-8
appview/pages/templates/repo/issues/issues.html
···<input type="hidden" name="state" value="{{ if .FilteringByOpen }}open{{ else }}closed{{ end }}">+class="flex-1 py-1 pl-2 pr-10 mr-[-1px] rounded-r-none focus:border-0 focus:outline-none focus:ring focus:ring-blue-400 ring-inset peer"+class="absolute right-3 top-1/2 -translate-y-1/2 text-gray-400 hover:text-gray-600 dark:hover:text-gray-300 hidden peer-[:not(:placeholder-shown)]:block"-<input class="flex-1 p-1 pl-10 pr-10 peer" type="text" name="q" value="{{ .FilterQuery }}" placeholder=" ">-class="absolute right-3 top-1/2 -translate-y-1/2 text-gray-400 hover:text-gray-600 dark:hover:text-gray-300 hidden peer-[:not(:placeholder-shown)]:block"
+1
appview/pages/templates/repo/new.html
+1
appview/pages/templates/repo/new.html
+3
-3
appview/pages/templates/repo/pipelines/fragments/logBlock.html
+3
-3
appview/pages/templates/repo/pipelines/fragments/logBlock.html
···<details id="step-{{ .Id }}" {{if not .Collapsed}}open{{end}} class="group pb-2 rounded-sm border border-gray-200 dark:border-gray-700"><summary class="sticky top-0 pt-2 px-2 group-open:pb-2 group-open:mb-2 list-none cursor-pointer group-open:border-b border-gray-200 dark:border-gray-700 bg-white dark:bg-gray-800 hover:text-gray-500 hover:dark:text-gray-400">+<div class="group-open:hidden flex items-center gap-1">{{ i "chevron-right" "w-4 h-4" }} {{ template "stepHeader" . }}</div>+<div class="hidden group-open:flex items-center gap-1">{{ i "chevron-down" "w-4 h-4" }} {{ template "stepHeader" . }}</div><div class="font-mono whitespace-pre overflow-x-auto px-2"><div class="text-blue-600 dark:text-blue-300">{{ .Command }}</div><div id="step-body-{{ .Id }}"></div></div>···<span class="ml-auto text-sm text-gray-500 tabular-nums" data-timer="{{ .Id }}" data-start="{{ .StartTime.Unix }}"></span>
+20
-9
appview/pages/templates/repo/pulls/pulls.html
+20
-9
appview/pages/templates/repo/pulls/pulls.html
···+class="flex-1 py-1 pl-2 pr-10 mr-[-1px] rounded-r-none focus:border-0 focus:outline-none focus:ring focus:ring-blue-400 ring-inset peer"+class="absolute right-3 top-1/2 -translate-y-1/2 text-gray-400 hover:text-gray-600 dark:hover:text-gray-300 hidden peer-[:not(:placeholder-shown)]:block"-<input class="flex-1 p-1 pl-10 pr-10 peer" type="text" name="q" value="{{ .FilterQuery }}" placeholder=" ">-class="absolute right-3 top-1/2 -translate-y-1/2 text-gray-400 hover:text-gray-600 dark:hover:text-gray-300 hidden peer-[:not(:placeholder-shown)]:block"
+1
-1
appview/pages/templates/repo/settings/general.html
+1
-1
appview/pages/templates/repo/settings/general.html
+8
-4
appview/pages/templates/strings/string.html
+8
-4
appview/pages/templates/strings/string.html
···<a href="/strings/{{ $ownerId }}/{{ .String.Rkey }}" class="font-bold">{{ .String.Filename }}</a>···
+1
-2
appview/pages/templates/timeline/fragments/goodfirstissues.html
+1
-2
appview/pages/templates/timeline/fragments/goodfirstissues.html
···<div class="flex items-center justify-between gap-2 bg-purple-200 dark:bg-purple-900 border border-purple-400 dark:border-purple-500 rounded mb-4 py-4 px-6 ">
+4
-4
appview/pages/templates/timeline/fragments/timeline.html
+4
-4
appview/pages/templates/timeline/fragments/timeline.html
···<span class="text-gray-700 dark:text-gray-400 text-xs">{{ template "repo/fragments/time" $repo.Created }}</span>-{{ template "user/fragments/repoCard" (list $root . true true (dict "IsStarred" $event.IsStarred "RepoAt" .RepoAt "Stats" (dict "StarCount" $event.StarCount))) }}+{{ template "user/fragments/repoCard" (list $root . true true (dict "IsStarred" $event.IsStarred "SubjectAt" .RepoAt "StarCount" $event.StarCount)) }}<div class="pl-6 py-2 bg-white dark:bg-gray-800 text-gray-600 dark:text-gray-300 flex flex-wrap items-center gap-2 text-sm">···<span class="text-gray-700 dark:text-gray-400 text-xs">{{ template "repo/fragments/time" .Created }}</span>-{{ template "user/fragments/repoCard" (list $root . true true (dict "IsStarred" $event.IsStarred "RepoAt" .RepoAt "Stats" (dict "StarCount" $event.StarCount))) }}+{{ template "user/fragments/repoCard" (list $root . true true (dict "IsStarred" $event.IsStarred "SubjectAt" .RepoAt "StarCount" $event.StarCount)) }}
+7
-1
appview/pages/templates/user/fragments/editBio.html
+7
-1
appview/pages/templates/user/fragments/editBio.html
···
+2
-1
appview/pages/templates/user/fragments/repoCard.html
+2
-1
appview/pages/templates/user/fragments/repoCard.html
······
+3
appview/pipelines/pipelines.go
+3
appview/pipelines/pipelines.go
·········
+2
appview/pulls/pulls.go
+2
appview/pulls/pulls.go
······
+14
-10
appview/repo/compare.go
+14
-10
appview/repo/compare.go
···
+1
-14
appview/repo/repo_util.go
+1
-14
appview/repo/repo_util.go
·········
-1
appview/repo/router.go
-1
appview/repo/router.go
+3
-5
appview/state/profile.go
+3
-5
appview/state/profile.go
·········
+1
-1
appview/state/router.go
+1
-1
appview/state/router.go
···
+9
-13
appview/state/star.go
+9
-13
appview/state/star.go
·········
+14
-2
appview/strings/strings.go
+14
-2
appview/strings/strings.go
···
+6
-9
flake.nix
+6
-9
flake.nix
······+services.tangled.appview.package = lib.mkDefault self.packages.${pkgs.stdenv.hostPlatform.system}.appview;···+services.tangled.knot.package = lib.mkDefault self.packages.${pkgs.stdenv.hostPlatform.system}.knot;···+services.tangled.spindle.package = lib.mkDefault self.packages.${pkgs.stdenv.hostPlatform.system}.spindle;
+1
-1
nix/pkgs/knot-unwrapped.nix
+1
-1
nix/pkgs/knot-unwrapped.nix
+1
-1
spindle/engines/nixery/engine.go
+1
-1
spindle/engines/nixery/engine.go
···
-73
spindle/engines/nixery/setup_steps.go
-73
spindle/engines/nixery/setup_steps.go
······-func cloneStep(twf tangled.Pipeline_Workflow, tr tangled.Pipeline_TriggerMetadata, dev bool) Step {
+151
spindle/models/clone.go
+151
spindle/models/clone.go
···+func BuildCloneStep(twf tangled.Pipeline_Workflow, tr tangled.Pipeline_TriggerMetadata, dev bool) CloneStep {
+371
spindle/models/clone_test.go
+371
spindle/models/clone_test.go
···
+15
-7
spindle/secrets/openbao.go
+15
-7
spindle/secrets/openbao.go
············
+5
-2
spindle/secrets/openbao_test.go
+5
-2
spindle/secrets/openbao_test.go
······