commits
Lewis: May this revision serve well! <lewis@tangled.org>
Signed-off-by: Seongmin Lee <git@boltless.me>
So that we can actually know the runtime subscription status and
resubscribe on requestCrawl
Signed-off-by: Seongmin Lee <git@boltless.me>
Lewis: May this revision serve well! <lewis@tangled.org>
Signed-off-by: Lewis <lewis@tangled.org>
Signed-off-by: Lewis <lewis@tangled.org>
Lewis: May this revision serve well! <lewis@tangled.org>
Signed-off-by: Lewis <lewis@tangled.org>
Signed-off-by: Lewis <lewis@tangled.org>
Lewis: May this revision serve well! <lewis@tangled.org>
Signed-off-by: Lewis <lewis@tangled.org>
Signed-off-by: Lewis <lewis@tangled.org>
Signed-off-by: Lewis <lewis@tangled.org>
Lewis: May this revision serve well! <lewis@tangled.org>
Signed-off-by: Lewis <lewis@tangled.org>
Lewis: May this revision serve well! <lewis@tangled.org>
Signed-off-by: Lewis <lewis@tangled.org>
Lewis: May this revision serve well! <lewis@tangled.org>
We ought to harden the knotmirror in case we get errors
from tap or anywhere else, in situations such that the
appview knows about a git repo somewhere but the knot-
mirror doesn't. I would call this good practice in general
so that we have robust infrastructure and other possible
future appviews would also be able to trust that the
knotmirror will serve them repos that in fact exist.
Lewis: May this revision serve well! <lewis@tangled.org>
old version has a bug of not retrying failed resyncs
Signed-off-by: Seongmin Lee <git@boltless.me>
Signed-off-by: eti <eti@eti.tf>
Signed-off-by: oppiliappan <me@oppi.li>
uses the same logic as in the label template to resolve and render
labels.
Signed-off-by: oppiliappan <me@oppi.li>
Signed-off-by: oppiliappan <me@oppi.li>
Signed-off-by: eti <eti@eti.tf>
Lewis: May this revision serve well! <lewis@tangled.org>
Signed-off-by: eti <eti@eti.tf>
Clicking the empty space to the left of the "comment" button toggle
used to collapse the comments column — the hit area has now instead
been limited to the icon/button itself.
Add hit-area utility classes to `input.css`
Source: https://bazza.dev/craft/2026/hit-area
Signed-off-by: eti <eti@eti.tf>
Update the visual styling for pull request rounds to provide better
visual distinction between active and inactive rounds. Changes include:
- Better background colors for active rounds (blue tint)
- Improved text contrast in both light and dark modes
- Consistent border handling and overflow clipping
Signed-off-by: eti <eti@eti.tf>
appview/pages/templates/repo/pulls: fix collapse comments background color in dark mode
Signed-off-by: eti <eti@eti.tf>
Clicking the "History" header was allowed but did nothing meaningful,
just flicker the view.
This commit disables that behavior while keeping the relevant
information like the number of comments and the number of rounds
selectable as they should.
Signed-off-by: eti <eti@eti.tf>
The HTML sanitizer was stripping <picture> and <source> elements from
rendered markdown, preventing modern image format usage (e.g. AVIF with
fallbacks). Allow these elements and their relevant attributes (srcset,
type, media).
Signed-off-by: Niclas Overby <niclas@overby.me>
Update all call sites of db.GetSpindles and db.AddPipelineStatus to pass
a context.Context, enabling proper cancellation and timeout propagation
to the database layer.
Signed-off-by: Matías Insaurralde <matias@insaurral.de>
Signed-off-by: Matías Insaurralde <matias@insaurral.de>
Add a "collapse comments" button because the previous and only way to
collapse them, the vertical line, was not always obvious.
Signed-off-by: eti <eti@eti.tf>
Signed-off-by: oppiliappan <me@oppi.li>
Signed-off-by: oppiliappan <me@oppi.li>
Signed-off-by: Matías Insaurralde <matias@insaurral.de>
Signed-off-by: Matías Insaurralde <matias@insaurral.de>
Signed-off-by: Matías Insaurralde <matias@insaurral.de>
Signed-off-by: Matías Insaurralde <matias@insaurral.de>
Signed-off-by: Matías Insaurralde <matias@insaurral.de>
Based on: <32d9db7c74d4a98852e8e59bdd4bb8b56d16ea83>
Authored-by: Lewis <lewis@tangled.org>
Signed-off-by: Seongmin Lee <git@boltless.me>
Fix appview segfault on new repo creation.
`RepoStats` can be empty. It is recommended to check it before
accessing.
Signed-off-by: Seongmin Lee <git@boltless.me>
negations should not include trigram tokenized terms
Signed-off-by: oppiliappan <me@oppi.li>
avoid global mutation and weird cross-request interactions.
Signed-off-by: oppiliappan <me@oppi.li>
Unmarshal errors in processPipeline were written to stdout via
fmt.Println, bypassing the slog-based structured logger. Replace with
s.l.Error so the error carries the standard fields (timestamp,
component, log level) and appears consistently with the rest of
spindle's log output.
Signed-off-by: Matías Insaurralde <matias@insaurral.de>
Lewis: May this revision serve well! <lewis@tangled.org>
Triggers my autism.
Signed-off-by: Anirudh Oppiliappan <anirudh@tangled.org>
Signed-off-by: Seongmin Lee <git@boltless.me>
Use address resolution steps from RFC5321 section 5.1 when validating
email addresses.
ref: https://datatracker.ietf.org/doc/html/rfc5321#section-5.1
Signed-off-by: tjh <x@tjh.dev>
this search bar has `language` and `topic` as keyword filters.
Signed-off-by: oppiliappan <me@oppi.li>
also reimplement GetRepos in terms of GetReposPaginated
Signed-off-by: oppiliappan <me@oppi.li>
This plays nice with satori and doesn't require wacky conversions etc.
Signed-off-by: Anirudh Oppiliappan <anirudh@tangled.org>
And move it out of appview.
Signed-off-by: Anirudh Oppiliappan <anirudh@tangled.org>
knotmirror ingests repo creation event from atproto relay through tap,
not from knotstream. Therefore, knotserver will request
`sync.requestCrawl` with optional new repo information to notify the
repo creation event.
Knot will call `sync.requestCrawl` on following cases:
- on startup
- when `/event` stream has failed
- on repo creation (mandatory)
Signed-off-by: Seongmin Lee <git@boltless.me>
Signed-off-by: Seongmin Lee <git@boltless.me>
Signed-off-by: Seongmin Lee <git@boltless.me>
Signed-off-by: eti <eti@eti.tf>
Lewis: May this revision serve well! <lewis@tangled.org>
We ought to harden the knotmirror in case we get errors
from tap or anywhere else, in situations such that the
appview knows about a git repo somewhere but the knot-
mirror doesn't. I would call this good practice in general
so that we have robust infrastructure and other possible
future appviews would also be able to trust that the
knotmirror will serve them repos that in fact exist.
Lewis: May this revision serve well! <lewis@tangled.org>
Update the visual styling for pull request rounds to provide better
visual distinction between active and inactive rounds. Changes include:
- Better background colors for active rounds (blue tint)
- Improved text contrast in both light and dark modes
- Consistent border handling and overflow clipping
Signed-off-by: eti <eti@eti.tf>
appview/pages/templates/repo/pulls: fix collapse comments background color in dark mode
Signed-off-by: eti <eti@eti.tf>
Signed-off-by: oppiliappan <me@oppi.li>
Unmarshal errors in processPipeline were written to stdout via
fmt.Println, bypassing the slog-based structured logger. Replace with
s.l.Error so the error carries the standard fields (timestamp,
component, log level) and appears consistently with the rest of
spindle's log output.
Signed-off-by: Matías Insaurralde <matias@insaurral.de>
knotmirror ingests repo creation event from atproto relay through tap,
not from knotstream. Therefore, knotserver will request
`sync.requestCrawl` with optional new repo information to notify the
repo creation event.
Knot will call `sync.requestCrawl` on following cases:
- on startup
- when `/event` stream has failed
- on repo creation (mandatory)
Signed-off-by: Seongmin Lee <git@boltless.me>