3076 Commits

Author SHA1 Message Date
Keyan
5a7593f2a7
Revert "add an action that extends awards.csv on PR merges (#1931)" (#1932)
This reverts commit 5de9d92af25be1c8c757b344843f70fb82ffbd6a.
2025-02-28 19:19:07 -06:00
Edward Kung
73170ba8a2
Territory analytics (#1926)
* add territory to analytics selectors

* implement territory analytics, revert user satistics header

* fix linting errors

* disallow some territory names

* fix linting error

* minor adjustments to header

* escape input

* 404 on non-existant sub

* exclude unused queries depending on sub select

---------

Co-authored-by: Keyan <34140557+huumn@users.noreply.github.com>
Co-authored-by: k00b <k00b@stacker.news>
2025-02-28 19:15:18 -06:00
Scroogey-SN
5de9d92af2
add an action that extends awards.csv on PR merges (#1931) 2025-02-28 19:13:14 -06:00
k00b
4e113c267b moar link extraction vibe coding: config file, batching, log level 2025-02-28 11:35:41 -06:00
Keyan
d1bbfd5339
Update awards.csv 2025-02-27 15:48:10 -06:00
Scroogey-SN
b6618dd66a
Fix issue #1924, require nostr prefixes start with slash (#1928) 2025-02-27 15:24:09 -06:00
Scroogey-SN
33db3b2c79
Add self to contributors.txt (#1929) 2025-02-27 15:16:40 -06:00
Keyan
f271926665
Update awards.csv 2025-02-27 13:13:27 -06:00
Scroogey-SN
f97c1b04e6
Fix issue #1905, item popover with commentId (#1911)
* Fix issue #1905, item popover with commentId

* Fix issue #1924, require nostr prefixes start with slash

* revert hacks and unrelated changes, use commentId in rehype

---------

Co-authored-by: Keyan <34140557+huumn@users.noreply.github.com>
Co-authored-by: k00b <k00b@stacker.news>
2025-02-27 13:10:42 -06:00
k00b
43edef55eb vibe coded nostr link extractor script 2025-02-27 11:58:02 -06:00
soxa
31532ff830
Dynamic loading optimizations (#1925)
* dynamic: React QR Scanner, React Datepicker; placeholder for syntax highlighting

* Loading placeholders, prevent layout shifting
2025-02-24 15:06:40 -06:00
k00b
31b58baf51 decrease nofollow limit 2025-02-23 11:08:05 -06:00
soxa
7b988b87d9
hotfix: email address should be case insensitive (#1923) 2025-02-23 11:03:32 -06:00
soxa
bc3c008a6d
Dynamically import MathJax (#1910)
* Dynamically import MathJax

* Only load if there's math content; cleanup

* avoid loading RSH on Math, we have MathJax for that; cleanup

* support multiline mathjax

---------

Co-authored-by: k00b <k00b@stacker.news>
2025-02-21 15:41:27 -06:00
Keyan
c571ba0cb7
README.md typo 2025-02-15 20:16:34 -06:00
Keyan
46f87e98b6
Orbstack encouragement 2025-02-15 20:15:51 -06:00
soxa
868847cb43
Dynamically import React Syntax Highlighter; correct theme (#1909) 2025-02-15 16:33:44 -06:00
k00b
d8de6255fe Merge divergent deploy branch 2025-02-15 13:56:41 -06:00
Keyan
4651b36944
Update awards.csv 2025-02-14 22:09:54 -06:00
ekzyis
fca5193beb
Fix autowithdrawal error handling (#1908)
* Fix autowithdrawal error message

* Fix no error thrown if autowithdrawal failed
2025-02-14 20:55:17 -06:00
Keyan
f0d7eaf446
Update awards.csv 2025-02-14 20:09:28 -06:00
ekzyis
5e85147578
Fix receiver fallback on caller error (#1907)
* Rename to createUserInvoice

* Fix no receiver fallback on wrap, direct or autowithdrawal error

* Fix missing error logs for direct payments
2025-02-14 20:01:14 -06:00
ekzyis
0032e064b2
Automated retries (#1776)
* Poll failed invoices with visibility timeout

* Don't return intermediate failed invoices

* Don't retry too old invoices

* Retry invoices on client

* Only attempt payment 3 times

* Fix fallbacks during last retry

* Rename retry column to paymentAttempt

* Fix no index used

* Resolve TODOs

* Use expiring locks

* Better comments for constants

* Acquire lock during retry

* Use expiring lock in retry mutation

* Use now() instead of CURRENT_TIMESTAMP

* Cosmetic changes

* Immediately show failed post payments in notifications

* Update hasNewNotes

* Never retry on user cancel

For a consistent UX and less mental overhead, I decided to remove the exception for ITEM_CREATE where it would still retry in the background even though we want to show the payment failure immediately in notifications.

* Fix notifications without pending retries missing if no send wallets

If a stacker has no send wallets, they would miss notifications about failed payments because they would never get retried.

This commit fixes this by making the notifications query aware if the stacker has send wallets. This way, it can tell if a notification will be retried or not.

* Stop hiding userCancel in notifications

As mentioned in a previous commit, I want to show anything that will not be attempted anymore in notifications.

Before, I wanted to hide manually cancelled invoices but to not change experience unnecessarily and to decrease mental overhead, I changed my mind.

* Also consider invoice.cancelledAt in notifications

* Always retry failed payments, even without send wallets

* Fix notification indicator on retry timeout

* Set invoice.updated_at to date slightly in the future

* Use default job priority

* Stop retrying after one hour

* Remove special case for ITEM_CREATE

* Replace retryTimeout job with notification indicator query

* Fix sortTime

---------

Co-authored-by: Keyan <34140557+huumn@users.noreply.github.com>
2025-02-14 19:25:11 -06:00
k00b
f4040756b3 fix graphql errors in notifications 2025-02-14 15:10:15 -06:00
ekzyis
87b5bb80fd
Fix missing cleanup of dark mode listeners (#1906) 2025-02-14 11:37:24 -06:00
Edward Kung
15bd1c3fc5
Fix the check for misleading links (#1901)
* Fix the check for misleading links

* replace tabs with spaces

* remove trailing spaces

* move isMisleadingLinks to lib/url.js and create unit tests

* Add comments to test cases

* URLs can contain hyphens

---------

Co-authored-by: ekzyis <ek@stacker.news>
2025-02-14 09:43:08 -06:00
ekzyis
77781e07ed
Don't parse content in code blocks (#1899) 2025-02-13 11:46:53 -06:00
ekzyis
3cdf5c9451
Fix comment not outlined again (#1902) 2025-02-13 11:46:35 -06:00
k00b
a4cce7afed only record landing of referree if they don't have referrer 2025-02-12 10:10:25 -06:00
soxa
1afadbdf3b
enhance: referral notifications with source (#1862)
* wip: referral notification shows source of referral

* simpler approach for source info gathering

* fix territory representation; fix fragment field

* cleanup; fix UI

* better margin approach

* hotfix: null check

* add support for comments

* use Union to represent ReferralSource; clarify with switch statements

* cleanup: compact switch statement on Referral resolver

* wip use refereeLanding

* add comments; cleanup

* hotfix: backwards compatibility for Earnings calculation

* small copy and semantics changes

---------

Co-authored-by: Keyan <34140557+huumn@users.noreply.github.com>
Co-authored-by: k00b <k00b@stacker.news>
2025-02-11 20:02:04 -06:00
k00b
bdd87e7d39 add retry link back 2025-02-11 16:29:37 -06:00
soxa
e6081ebef3
fix: THREAD notification type for noteAllDescendants (#1894)
* THREAD notifications to distinguish direct replies from follow-ups

* hotfix: typo

* hotfix: avoid subquery when we already have a JOIN
2025-02-11 13:45:04 -06:00
k00b
5af61f415f monospace font for edit countdowns 2025-02-10 19:19:22 -06:00
ekzyis
1ce88a216a
Merge pull request #1893 from stackernews/fix-welcome-script
Fix NaN in welcome script
2025-02-10 16:04:20 +01:00
ekzyis
a913c2d452 Fix NaN in welcome script 2025-02-10 01:39:13 +01:00
ekzyis
54afe67558
Merge pull request #1892 from stackernews/fix-welcome-script
Fix bios missed in welcome script
2025-02-10 01:33:21 +01:00
ekzyis
34aadba352 Fix bios missed in welcome script 2025-02-10 01:32:30 +01:00
Keyan
a8b3ee37bf
Update awards.csv 2025-02-08 18:42:41 -06:00
Keyan
64bbd2e1b8
Update awards.csv 2025-02-08 15:14:07 -06:00
soxa
c01f4865dc
apply flex rules after images are loaded (#1886) 2025-02-08 13:14:42 -06:00
k00b
1e673cab77 monospace font for edit countdowns 2025-02-07 18:49:22 -06:00
ekzyis
2732013da3
FAQ feedback (#1888) 2025-02-07 17:37:15 -06:00
ekzyis
f90ed8d294
Add territory stats answer to FAQ (#1887) 2025-02-07 14:51:03 -06:00
soxa
5c2aa979ea
feat: comment fee control (#1768)
* feat: comment fee control

* update typeDefs for unarchiving territories

* review: move functions to top level; consider saloon items

* ux: cleaner post/reply cost section

* hotfix: handle salon replies

* bios don't have subs + simplify root query

* move reply cost to accordian

---------

Co-authored-by: Keyan <34140557+huumn@users.noreply.github.com>
Co-authored-by: k00b <k00b@stacker.news>
2025-02-07 13:38:57 -06:00
ekzyis
ac321be3cd
Big FAQ update (#1800) 2025-02-07 12:53:11 -06:00
k00b
95e98501ec reduce max incoming invoice expiration and expiration buffer 2025-02-05 12:47:35 -06:00
k00b
ee8fe6e72a add boost badge fix #1860 2025-02-03 19:56:29 -06:00
k00b
9885bcf209 make sure comments specify time zone for invoicePaidAt fix #1859 2025-02-03 19:40:33 -06:00
jason-me
2dfde257d2
Update price button accessibility in header (#1857)
* Update price button accessibility

* Updated accName and accDescription for speech dictation and screen reader users.

* Update price.js

Replace double quote with single

* Update price.js

Remove trailing spaces

* make .visually-hidden global, use className rather than class

* make accessible button component

---------

Co-authored-by: Jason Hester <jhester@TPGLPT-LTC23.attlocal.net>
Co-authored-by: Keyan <34140557+huumn@users.noreply.github.com>
Co-authored-by: k00b <k00b@stacker.news>
2025-02-03 19:22:02 -06:00
soxa
be7c702602
Login with magic code (#1818)
* fix: cannot login with email on PWA

* adjust other email templates

* restore manual url on new user email

* no padding on button section

* cleanup

* generate 6-digit bechh32 token

* token needs to be fed as lower case; validator case insensitive

* delete token if user has failed 3 times

* proposal: context-independent error page

* include expiration time on email page message

* add expiration time to emails

* independent checkPWA function

* restore token deletion if successful auth

* final cleanup: remove unused function

* compact useVerificationToken

* email.js: magic code for non-PWA users

* adjust email templates

* MultiInput component; magic code via MultiInput

* hotfix: revert length testing; larger width for inputs

* manual bech32 token generation; no upperCase

* reverting to string concatenation

* layout tweaks, fix error placement

* pastable inputs

* small nit fixes

* less ambiguous error path

---------

Co-authored-by: Keyan <34140557+huumn@users.noreply.github.com>
Co-authored-by: k00b <k00b@stacker.news>
2025-02-03 18:41:01 -06:00