Received: from mail.netlandish.com (mail.netlandish.com [174.136.98.166])
	by code.netlandish.com (Postfix) with ESMTP id E3C6C518
	for <~netlandish/links-dev@lists.code.netlandish.com>; Wed, 01 Jul 2026 00:13:00 +0000 (UTC)
Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=74.125.224.53; helo=mail-yx1-f53.google.com; envelope-from=peter@netlandish.com; receiver=<UNKNOWN> 
Authentication-Results: mail.netlandish.com;
	dkim=pass (1024-bit key; unprotected) header.d=netlandish.com header.i=@netlandish.com header.b=mERokkB6
Received: from mail-yx1-f53.google.com (mail-yx1-f53.google.com [74.125.224.53])
	by mail.netlandish.com (Postfix) with ESMTP id 70A981D80BF
	for <~netlandish/links-dev@lists.code.netlandish.com>; Wed, 01 Jul 2026 00:13:21 +0000 (UTC)
Received: by mail-yx1-f53.google.com with SMTP id 956f58d0204a3-6651bc5730dso29771d50.2
        for <~netlandish/links-dev@lists.code.netlandish.com>; Tue, 30 Jun 2026 17:13:21 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=netlandish.com; s=google; t=1782864801; x=1783469601; darn=lists.code.netlandish.com;
        h=mime-version:content-transfer-encoding:message-id:user-agent
         :subject:reply-to:cc:to:from:date:from:to:cc:subject:date:message-id
         :reply-to;
        bh=Z3Ah0S4403keB/GjaU55yU6DN8nVJRc3fRhxNrdGuUI=;
        b=mERokkB6Jyoux99Q6p6QkwVBNPrx/kfZC0ZYU/LEKLS7VOzWpF9tysE1y2/sVhcrxA
         vuTr2P16Kx2fEgHeOhNTaSAvU66zb2ihrPUmdS1tLu3x9M30Ykw+dzdimrNLJriLyzme
         d1bKKPV+fXlb5dqoHteGaKOX+a3kjCaJEAbw8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1782864801; x=1783469601;
        h=mime-version:content-transfer-encoding:message-id:user-agent
         :subject:reply-to:cc:to:from:date:x-gm-gg:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=Z3Ah0S4403keB/GjaU55yU6DN8nVJRc3fRhxNrdGuUI=;
        b=VSoY/pGm5BZ42s+n167ihvAgwsvuKno4W6M94JuFS/3nnWfXbi5wiOJgdvrKUzdiVj
         LAmtJ/xbBwUmQ0YWTHXGdKbXsQcS5RHptshcTwY48W1dZM15OBP0GVhDoaZJn4WJyx2f
         mGgDHgseGmD5GrNlwyGqWTy1wbOeCRegZoyaH/KimJCTMXyM/odVicjPUbTDNps21lq/
         jXhrilyJDt2Pk2k1kcbJ+Z/lj6aqTRuB/Ymhv/yj99Lz32sXK1HNt2LDqeTALduC3MjY
         h28+mVHtztN/LDSxVIWI0zH7QxiV1hxX7AUm1RcudK1wXHXaBtXNGoAA8lO8ctR9Svtk
         tptA==
X-Gm-Message-State: AOJu0Yz3TjA332jbMx0VZl5KjPX/dno4Yk9RsKnIwummLNOutQUykyV7
	9q4H5VXc5YlkJjlJCXwsLOK2hJMcNZkhAj17P5xQx8u51xPP9vOF5FxFU6/FJ1FMm7t6mQ==
X-Gm-Gg: AfdE7ck37sa1VxJ9umurFuXiD1w+zmvPzze6RZXMN2fZ1w6AnWLQSZRlzMFkXSgDtt9
	5xGO+K6e4ZaoO8iWuIrqnNcw2KJQyu5F2tyN6W05enQsUlc295RbkInQzXt2FMBqAMcvSdm8gKs
	H/RzeGIPuQ921Bp8Zc0KN7AxtxdqVYPEhTXco/jzmFZLf5+nimqCq8rKYcqzCrIVLfucuW/q1yB
	HXjivj0AMK3MUShGnuCoGx7pLTdfHDzzFLv60B06A7kLSHLa5Sdx+xQo+loiW2azdTBxs23GFbf
	XdVpAhG20cdv5bi/H7cylWNsQoO/uvpzJJtTjHCNd8QBR2cOSu2Ch11k28txMoGbpKWZ8d+f3Bu
	t3dYpPMjklPn7KtY/3ggV2qpcQ4wxiKnD8uSh+l9z208xnDa6W+Krv0KGZ3WEclIr5mDAF+m5eH
	mv8TE+Dj78uQ==
X-Received: by 2002:a05:690c:6a82:b0:7bd:b0a0:509c with SMTP id 00721157ae682-810d81e3ddamr57592377b3.28.1782864800952;
        Tue, 30 Jun 2026 17:13:20 -0700 (PDT)
Received: from localhost ([186.77.196.89])
        by smtp.gmail.com with ESMTPSA id 00721157ae682-8128a646bafsm1736737b3.8.2026.06.30.17.13.20
        (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
        Tue, 30 Jun 2026 17:13:20 -0700 (PDT)
Date: Tue, 30 Jun 2026 18:13:19 -0600
From: Peter Sanchez <peter@netlandish.com>
To: links-discuss <~netlandish/links-discuss@lists.code.netlandish.com>
Cc: links-dev <~netlandish/links-dev@lists.code.netlandish.com>
Reply-To: links-dev <~netlandish/links-dev@lists.code.netlandish.com>
Subject: links 0.9.0
User-Agent: links/0.9.0
Message-ID: <20260630181314.WCHLOL5V2XYA@thinkpad>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain; charset=UTF-8
MIME-Version: 1.0

Hi all,

I am happy to announce the release of links 0.9.0.

https://git.code.netlandish.com/~netlandish/links/refs/0.9.0

Release highlights:

# Added

- ability to fully delete your account.
- organizations and domains to GraphQL User type

# Fixed

- Issue where IP was not being correctly forwarded to the API server.
- Issue setting createdOn value for tags associated with bookmarks, shorts, listings.
- Issue when sanitizing user input that has valid characters that would be stripped as html tags.
- bug when shortCode is referenced before verification that it was passed
- api fix to stop leaking of (un)follow auditlogs
- getTags was not including tag count. Now it is.
- translations bug where catalog was overwritten and translations failed to show Spanish

# Closed Tickets

- [#115: Allow accounts to be completely deleted](https://todo.code.netlandish.com/~netlandish/links/115)
- [#135: Imported bookmarks are not respecting the date ordering](https://todo.code.netlandish.com/~netlandish/links/135)

# Changed dependencies for downstream packagers

## New

+ github.com/aymerick/douceur v0.2.0
+ github.com/gorilla/css v1.0.1
+ github.com/microcosm-cc/bluemonday v1.0.27

## Updated

* netlandish.com/x/gobwebs-graphql v0.2.11 => v0.2.12

Thanks to all contributors!

~$ contrib/git-stats.sh 0.8.0..0.9.0


