commits
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>
Signed-off-by: HigherOrderLogic <73709188+HigherOrderLogic@users.noreply.github.com>
this is not live yet, but this is the likely host for the public
knotmirror service.
Signed-off-by: oppiliappan <me@oppi.li>
fail on config load errors too
Signed-off-by: oppiliappan <me@oppi.li>
Signed-off-by: Lewis <lewis@tangled.org>
Signed-off-by: Seongmin Lee <git@boltless.me>
git-cli doesn't support http connection timeout, so we cannot set short
30s connection timeout on git fetch. We don't want to put operation
timeout that short because intial `git clone` can take pretty long.
go-git does expose http client but only globally and is less efficient
than cli. So as a hack, just fetch remote server to check if knot is
available and is valid git remote server
Signed-off-by: Seongmin Lee <git@boltless.me>
Underlying types except the interface hasn't changed much.
Removed `xrpcclient.HandleXrpcErr()` call as appview always expect
knotmirror with compatible API.
Signed-off-by: Seongmin Lee <git@boltless.me>
These experimental xrpc methods use at-uri instead of did/name format to
reference the repository. Intended to replace most of the `repo.*` xrpc
methods in Knot. Knots won't need to support these methods until we
finalize them.
Signed-off-by: Seongmin Lee <git@boltless.me>
KnotMirror is an external service that is intended to be used by
appview. It will ingest all known git repos and provide xrpc methods to
inspect them, so appview won't need to fetch individual knots on every
page render.
Using postgres exclusively instead of sqlite to support A LOT of
concurrent writes.
Signed-off-by: Seongmin Lee <git@boltless.me>
Signed-off-by: Seongmin Lee <git@boltless.me>
We will start using our own forked version of indigo package.
Signed-off-by: Seongmin Lee <git@boltless.me>
no bg around footer, move author avatars to the right on index etc.
Signed-off-by: oppiliappan <me@oppi.li>
Signed-off-by: Anirudh Oppiliappan <anirudh@tangled.org>
Seems to have been accidentally left out after #1178
Signed-off-by: Amazingca <autumn@amazingca.dev>
Signed-off-by: oppiliappan <me@oppi.li>
Signed-off-by: Seongmin Lee <git@boltless.me>
Signed-off-by: Lewis <lewis@tangled.org>
Co-authored-by: rosano.ca <did:plc:onc2begccbwy753ieqy5ctex>
Signed-off-by: oppiliappan <me@oppi.li>
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>
git-cli doesn't support http connection timeout, so we cannot set short
30s connection timeout on git fetch. We don't want to put operation
timeout that short because intial `git clone` can take pretty long.
go-git does expose http client but only globally and is less efficient
than cli. So as a hack, just fetch remote server to check if knot is
available and is valid git remote server
Signed-off-by: Seongmin Lee <git@boltless.me>
KnotMirror is an external service that is intended to be used by
appview. It will ingest all known git repos and provide xrpc methods to
inspect them, so appview won't need to fetch individual knots on every
page render.
Using postgres exclusively instead of sqlite to support A LOT of
concurrent writes.
Signed-off-by: Seongmin Lee <git@boltless.me>