spindle/engine: properly interrupt running workflows on cancel, dont overwrite cancelled status
appview/issues: replace log.Println with structured logging in opengraph.go
appview/repo: replace log.Printf/Println with structured logging in feed.go
appview/settings: replace log.Printf with structured logging
knotmirror/resyncer: reuse http.Client for knot reachability checks
knotmirror/resyncer: reuse http.Client for knot reachability checks
knotmirror/resyncer: reuse http.Client for knot reachability checks
appview/state: replace log package with structured slog logging
appview/middleware: replace log package with structured slog logging
appview/state: fix open redirect via return_url after OAuth login
appview/state: fix open redirect via return_url after OAuth login
appview/repo/blob.go: fix XSS via raw blob endpoint
appview/state: add test for parseSortParam
appview/indexer: propagate SearchInContext error instead of nil, nil
appview/indexer: add failing tests for Search nil,nil bug
patchutil: add tests for IsFormatPatch
appview/models: add tests for HasSearchFilters on all search option types
appview/repo: do not retry language detection
commitverify: skip unsigned commits before DB lookup
appview/db: propagate context through GetSpindles and AddPipelineStatus
knotserver/git: add comprehensive tag tests, improve parseTagRecord coverage
crypto: add tests for VerifySignature and SSHFingerprint
patchutil: pre-compile splitFormatPatch regex at package init
pulls: replace log.Println/Printf with structured slog
knotserver/git/merge: pre-compile conflict error regex at package init
appview/oauth: add handler tests for callback, metadata and JWKS endpoints
spindle: replace fmt.Println with structured logger in processPipeline
markup/sanitizer: build bluemonday policies once at package init
reporesolver: compile path regexps at package init
knotmirror, nix: rename `DbPath` to `DbUrl`
appview/settings: add domain claim/release with r2, kv and db cleanup
wip: atprotate pulls
appview: listen for pipeline events from spindlestream
contrib,nix: local, sandboxed atmosphere infra
appview: remove `db.GetReaction()`
appview/pages: clean up copy on homepage
wip: make spindle work in my machine
appview/pages: list webhook deliveries in repo settings
docs: document webhooks
appview/state: support `/favicon.ico`
appview/pages: improved seo tags for home, repo and profile
appview/notify: introduce loggingNotifier as a separate notifier
cherry-pickable: add logging to pages
appview/notify: merge new comment events into one
appview/{service,web}: service layer
wip: spindle: engines -> adapters
tmp: cmd/rbactester
appview/pages: finesse styling in review page
appview,knotserver: support lockable http tarball protocol
appview/pages: show login/signup CTA in pulls submissions only once
appview/pages: rework the PR page entirely
appview/pulls: add pagination to pull requests listing
appview/ingester: ingest label ops on pulls too
appview/pulls: compress patch blobs using gzip
wip: spindle: docker engine
appview/state: refactor manifest.json
appview/pages: render a placeholder avatar when there's no did
orm: extract orm package from appview
wip: knot2: xrpc.git.keepCommit
appview/pages: seo improvements, sitemap, schemae and more
knotserver: use local clones if repo is hosted on the same knot
guard: supress logging
appview/pages: show live updating counters for steps
appview/pages: show live updating counters for steps
appview/oauth: overload oauth identity directory
appview/pages: fix OG links for issues and pulls
appview/pulls: fix stacked resubmits using the wrong source-sha
appview/repo: increase opengraph content padding
nix: cp InterVariable ttf to fonts dir
appview/pages/markup: add support for callouts
appview/pulls: show "delete branch" button for merged PRs
appview/state: style changes to good-first-issue
appview/languages: fix logic bug in updating language breakdowns
appview/notifications: fix pagination
appview/pages: add labels to pulls
appview/signup: set up cf turnstile
appview/pages: remove double border around follow-cards
appview/pages: fix terms and privacy pages
appview/labels: reduce the opset after validation
appview/validator: limit label ops to collaborators
appview: improve styles in strings pages
appview/middleware: indiscriminately try to refresh the session
appview: always pass DID into tinyAvatar func
appview/pages: notifications ui and templating
appview/labels: add "subscribe all" button for default labels
appview/pages: prevent action button overflow in timeline cards
knotserver: use exact source SHA to compile pipelines
ci: run go-vet on CI
appview/state: imrpove starred page performance
appview: introduce default labels that can be subscribed to
appview: relax auth requirement on artifact download
knotserver: detect bun.lock files as generated
appview/{notify,strings}: notify on string create/edit/delete ops
appview/pages: hide profile-card from non-overview pages on mobile
appview/pages: show star/unstar buttons on the timeline