alpha
Login
or
Join now
tangled.org
/
core
Star
10
Fork
66
Atom
Configure Feed
Issues
Pull Requests
Commits
Tags
Feed URL
Select the types of activity you want to include in your feed.
Monorepo for Tangled
tangled.org
Star
10
Fork
66
Atom
Configure Feed
Issues
Pull Requests
Commits
Tags
Feed URL
Select the types of activity you want to include in your feed.
Overview
Issues
16
Pulls
27
Pipelines
core
/
appview
/
state
/
at
120cf31d890bc7de9e33e9d4e9d652c4c07da1c2
1 folder
17 files
oppiliappan
appview/db: fix up nits with newsletter handlers
2mo ago
92009db2
userutil
appview: remove `@` from URLs and interface old URLs that refer to users with the `@` are redirected to the version without `@`. the leading motivation for this change is that valid atproto handles do not contain the prefix. it is purely stylistic. Signed-off-by: oppiliappan <me@oppi.li>
8 months ago
accounts.go
appview/db: fix up nits with newsletter handlers Signed-off-by: oppiliappan <me@oppi.li>
2 months ago
follow.go
appview: remove `oauth.User` type This is not required anymore. `MultiAccountUser` can just hold active user DID. Signed-off-by: Seongmin Lee <git@boltless.me>
5 months ago
gfi.go
appview/state: replace log package with structured slog logging Replace all log.Println/log.Printf calls across follow.go, star.go, reaction.go, gfi.go, and profile.go with s.logger.Error/Warn/Info using structured key-value pairs. Each handler opens with a child logger via s.logger.With("handler", "FuncName"). Firehose-idempotent delete failures (follow, star, reaction) use Warn; all other failures use Error. Signed-off-by: Matías Insaurralde <matias@insaurral.de>
2 months ago
git_http.go
appview/notify: add Clone notifier, enqueue posthog event for clones Signed-off-by: Anirudh Oppiliappan <anirudh@tangled.org>
2 months ago
knotstream.go
appview/sites: use repoIdentifier for archive requests we could just use the knotmirror here directly instead of deploying from the knot, but we'd need the knotmirror to update before the site. for now just deploy from the knot. Signed-off-by: oppiliappan <me@oppi.li>
2 months ago
login.go
appview,knotserver: pref-handle display + identity ingest Lewis: May this revision serve well! <lewis@tangled.org>
2 months ago
login_test.go
appview/state: fix open redirect via return_url after OAuth login Validate return_url before storing it in the session: only relative paths starting with "/" (and not "//") are accepted. Anything else — absolute URLs and protocol-relative URLs — is replaced with "/". Add tests covering the accepted and rejected cases. Signed-off-by: Matías Insaurralde <matias@insaurral.de>
2 months ago
manifest.go
appview/state: refactor manifest.json incorporates changes suggested by @boltless.me Co-authored-by: Seongmin Lee <git@boltless.me> Signed-off-by: oppiliappan <me@oppi.li>
5 months ago
profile.go
appview,knotserver: pref-handle display + identity ingest Lewis: May this revision serve well! <lewis@tangled.org>
2 months ago
reaction.go
appview: remove `oauth.User` type This is not required anymore. `MultiAccountUser` can just hold active user DID. Signed-off-by: Seongmin Lee <git@boltless.me>
5 months ago
router.go
appview: persist newsletter signup/dismiss per-user for cross-device hiding the newsletter widget used only localStorage to remember whether a user had signed up or dismissed it, so the cta kept reappearing whenever a user opened tangled on another device or browser. for logged-in users, store the state in a newsletter_preferences table keyed on did with an enum status ('subscribed' | 'dismissed') and the email they gave us. the home and timeline handlers read this row to decide whether to render the widget, and the server-rendered gfi banner widens when the widget is gone so the grid doesn't leave an empty column. resend stays the source of truth for the mailing list itself (sending, bounces, one-click unsubscribes) — the new table only answers the render-time question 'should this did see the widget right now?', which resend cannot cheaply answer because it's keyed on email rather than did and would add a network hop to every timeline render. anonymous visitors keep the localStorage fallback. the client-side 'already dismissed in a past session' path deliberately only calls hide() (not dismiss()) so that a stale localStorage flag can't clobber a subscribed row set from another device. Signed-off-by: eti <eti@eti.tf>
2 months ago
search.go
appview/state: add posthog capture for search Sets the distinct id to 'anonymous' for logged out searches. Let's stick to this for any future logged out events. Signed-off-by: Anirudh Oppiliappan <anirudh@tangled.org>
2 months ago
search_test.go
appview/state: add test for parseSortParam Signed-off-by: Matías Insaurralde <matias@insaurral.de>
2 months ago
spindlestream.go
appview/db: propagate context through GetSpindles and AddPipelineStatus 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>
2 months ago
star.go
*: fmt Signed-off-by: Anirudh Oppiliappan <anirudh@tangled.org>
2 months ago
state.go
appview/db: fix up nits with newsletter handlers Signed-off-by: oppiliappan <me@oppi.li>
2 months ago
timeline.go
appview: persist newsletter signup/dismiss per-user for cross-device hiding the newsletter widget used only localStorage to remember whether a user had signed up or dismissed it, so the cta kept reappearing whenever a user opened tangled on another device or browser. for logged-in users, store the state in a newsletter_preferences table keyed on did with an enum status ('subscribed' | 'dismissed') and the email they gave us. the home and timeline handlers read this row to decide whether to render the widget, and the server-rendered gfi banner widens when the widget is gone so the grid doesn't leave an empty column. resend stays the source of truth for the mailing list itself (sending, bounces, one-click unsubscribes) — the new table only answers the render-time question 'should this did see the widget right now?', which resend cannot cheaply answer because it's keyed on email rather than did and would add a network hop to every timeline render. anonymous visitors keep the localStorage fallback. the client-side 'already dismissed in a past session' path deliberately only calls hide() (not dismiss()) so that a stale localStorage flag can't clobber a subscribed row set from another device. Signed-off-by: eti <eti@eti.tf>
2 months ago