Received: from mail.netlandish.com (mail.netlandish.com [174.136.98.166])
	by code.netlandish.com (Postfix) with ESMTP id 3813E195
	for <~netlandish/links-dev@lists.code.netlandish.com>; Tue, 18 Aug 2026 21:28:23 +0000 (UTC)
Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=209.85.128.50; helo=mail-wm1-f50.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=FCQnPyjv
Received: from mail-wm1-f50.google.com (mail-wm1-f50.google.com [209.85.128.50])
	by mail.netlandish.com (Postfix) with ESMTP id 9F9C51D81AF
	for <~netlandish/links-dev@lists.code.netlandish.com>; Tue, 18 Aug 2026 21:29:00 +0000 (UTC)
Received: by mail-wm1-f50.google.com with SMTP id 5b1f17b1804b1-4994c49f588so3066955e9.0
        for <~netlandish/links-dev@lists.code.netlandish.com>; Tue, 18 Aug 2026 14:29:00 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=netlandish.com; s=google; t=1787088539; x=1787693339; darn=lists.code.netlandish.com;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to:content-type;
        bh=1DcJL6UTsWza47Vx702WOiTgLyaNGgm6nMUPrMP1Z8M=;
        b=FCQnPyjv7M3EA8JyAG+Oyy98La8HKBiXCEu9sv47xNf2/LRiiDojnbI3iEwYOMqbJl
         DaNitaeoUslzcEiKvbBX9IutUsRjunWeX/rN1jjwhP+pDFdxjo3/s6qJzaUqVPQNdB4t
         i3nfEnUmcHP4xf85hCNM3B0JrjX8LJyda+n4M=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1787088539; x=1787693339;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to:content-type;
        bh=1DcJL6UTsWza47Vx702WOiTgLyaNGgm6nMUPrMP1Z8M=;
        b=D6Q0uEWtDW4dXbaaHy8ra+XQal1eIvuT8wkDeBHbf1TGuikHdoJRedMaPdoAVPVK8Y
         DSvmjbQ/u/EKOutXIQYP75B3WljOJrAxqh2jKG0pRTySsO/OpQ19LD9ejHbyuXF3RY2O
         jE1XDNpoS5opoc2s6P+3X3WgpnSDuu+8GnhxodZ7KCWoQiHaCO46lojUoay+EAj5iRnS
         NIVlVc1VZmgb6ilHNgyJsiOORII5oKCH9cu4IQ1IKMeRQtZOsjHJRfhfh4vhUnzs/t8r
         9lb2KS38WmCGfskiF6uh0oKtiMPPzY8lZyFh+5nElKlszUUhAo99UfAnHOd7AoCNB0ZX
         ukhw==
X-Gm-Message-State: AOJu0YzdZKNoFb4n0kLABn5Q9CvQTZlpW2k0s33Kjbx1KJKRhOwFLAIO
	Sxt+lbOfthO8TbzTldlvCkUWoJCSh36a3whQ+VnAvpvCcSPL3iZrsQhxaXg+KceO3iG0++rWOKI
	PiiQjTJQYBA==
X-Gm-Gg: AR+sD13EA4EyaGWHh43YPLupvVowFPRk1osz2mQG+JiccGQDLEFPbA5LF3BBzhH6BWB
	mjCndtmkhN0Wt69QJelb1Cc4mTKTmdEmoTzJGH4PPENB+ulqKSTCCSxxqke2ax/gT7QovfpyNIs
	4ffDdaxWnY2Yj8kAtCjDTcGMYAyJwylwIR5DaOEnVvERyx4L+qDWq/1UdGljuKDsmbHrUXMw5xr
	ZCgpVYrqD/PJ7LehRL4PCt9JOXYm7mK9qrTC2PLEvZHjX1fdEzmgSGWkamOa712/z84DHmP6mQO
	96vdciKH2wiBXvRW3LcZGgJ9t7FlnIbKYM7wE/cutoNfjkC/H3IyiCrOffAO0R2qg7bPToi3UOn
	Q940GFdkLYRf36kS4no/X/3QRT4vR/xXhIHxo87bc5bWWJl39XS9A+7s5SmnXRutEBOAYuCOdF7
	d3gxDtugli1mvNRgox5NodJceK5aOx/nsTNMjKRX8Dd1Uuhyhtahx9bsP/C5wbbAtavj/ySf52U
	PWt5xqowRXbhebQHD0T6z0935jCQWHTPX866YY+
X-Received: by 2002:a05:600c:4686:b0:495:5d6d:9cc1 with SMTP id 5b1f17b1804b1-499a9e574b0mr2398045e9.0.1787088539438;
        Tue, 18 Aug 2026 14:28:59 -0700 (PDT)
Received: from localhost (dynamic-077-013-149-063.77.13.pool.telefonica.de. [77.13.149.63])
        by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-499aa1111b2sm2509215e9.5.2026.08.18.14.28.58
        (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
        Tue, 18 Aug 2026 14:28:58 -0700 (PDT)
From: Peter Sanchez <peter@netlandish.com>
To: ~netlandish/links-dev@lists.code.netlandish.com
Cc: Peter Sanchez <peter@netlandish.com>
Subject: [PATCH links] gobwebs bump
Date: Tue, 18 Aug 2026 15:28:54 -0600
Message-ID: <20260818212856.17965-1-peter@netlandish.com>
X-Mailer: git-send-email 2.54.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

---
 config.example.ini | 13 +++++++++++++
 go.mod             | 12 ++++++------
 go.sum             | 24 ++++++++++++------------
 3 files changed, 31 insertions(+), 18 deletions(-)

diff --git a/config.example.ini b/config.example.ini
index bc0e4fb..5430916 100644
--- a/config.example.ini
+++ b/config.example.ini
@@ -39,6 +39,19 @@ default-from-email=noreply@domain.com
 # Default: true
 email-admin-errors=true
 
+# Suppress repeat admin error emails for the same error (route + error text)
+# for this many seconds. The report that follows a quiet period says how many
+# occurrences it stands in for and lists the request paths seen.
+# 0 disables suppression.
+# Default: 900
+error-email-window=900
+
+# Hard ceiling on admin error emails per hour across all errors. Backstops the
+# window when an error message embeds per-request data (ids, values) and so
+# never repeats its signature. 0 disables the ceiling.
+# Default: 20
+error-email-max-per-hour=20
+
 # Language
 default-language=es
 
diff --git a/go.mod b/go.mod
index 0df1750..4c3c217 100644
--- a/go.mod
+++ b/go.mod
@@ -33,12 +33,12 @@ require (
 	golang.org/x/text v0.27.0
 	golang.org/x/time v0.8.0
 	hg.code.netlandish.com/~netlandish/sendygo v0.0.0-20230124192435-bbf347776232
-	netlandish.com/x/gobwebs v0.1.14
-	netlandish.com/x/gobwebs-auditlog v0.3.1
-	netlandish.com/x/gobwebs-formguard v0.2.12
-	netlandish.com/x/gobwebs-graphql v0.2.13
-	netlandish.com/x/gobwebs-oauth2 v0.2.12
-	netlandish.com/x/gobwebs-ses-feedback v0.2.12
+	netlandish.com/x/gobwebs v0.1.15
+	netlandish.com/x/gobwebs-auditlog v0.3.2
+	netlandish.com/x/gobwebs-formguard v0.2.13
+	netlandish.com/x/gobwebs-graphql v0.2.14
+	netlandish.com/x/gobwebs-oauth2 v0.2.13
+	netlandish.com/x/gobwebs-ses-feedback v0.2.13
 	petersanchez.com/x/carrier v0.2.4
 	petersanchez.com/x/carrier/ses v0.0.0-20251028135020-aeeb26831d7f
 	petersanchez.com/x/carrier/smtp v0.0.0-20251028135020-aeeb26831d7f
diff --git a/go.sum b/go.sum
index 38506fc..d2cccaf 100644
--- a/go.sum
+++ b/go.sum
@@ -2582,18 +2582,18 @@ modernc.org/z v1.0.1-0.20210308123920-1f282aa71362/go.mod h1:8/SRk5C/HgiQWCgXdfp
 modernc.org/z v1.0.1/go.mod h1:8/SRk5C/HgiQWCgXdfpb+1RvhORdkz5sw72d3jjtyqA=
 modernc.org/z v1.2.20/go.mod h1:zU9FiF4PbHdOTUxw+IF8j7ArBMRPsHgq10uVPt6xTzo=
 modernc.org/zappy v1.0.0/go.mod h1:hHe+oGahLVII/aTTyWK/b53VDHMAGCBYYeZ9sn83HC4=
-netlandish.com/x/gobwebs v0.1.14 h1:IhmfC2N98O5ARcSDMalE6WJ9bNdGh9VFmBa6MID8Ccg=
-netlandish.com/x/gobwebs v0.1.14/go.mod h1:RAf0VNiujzXen/pu0k6yyhvPWMgCY9tKD7ftXrkT53E=
-netlandish.com/x/gobwebs-auditlog v0.3.1 h1:GJTH1AdMunjnoJgBvFxz9Xh5uTvTTRCXMt99ClkbziA=
-netlandish.com/x/gobwebs-auditlog v0.3.1/go.mod h1:80YZGFdUPiKbc3TU9Da2HpSJeukzie+L/x6O8fzTY9U=
-netlandish.com/x/gobwebs-formguard v0.2.12 h1:WmAquakbERFrA57QokBjZb+XT3PPX6PyU3Zj5LH07gU=
-netlandish.com/x/gobwebs-formguard v0.2.12/go.mod h1:ON/Y0nolqesgcLF2t+VTNaBQ8CvptK4wmAYpcqNbfJQ=
-netlandish.com/x/gobwebs-graphql v0.2.13 h1:IEv2Mcx37JzX8WAR8xvCrSNw8HKLKnv/PmpcmiPoTQU=
-netlandish.com/x/gobwebs-graphql v0.2.13/go.mod h1:TNw6ca3Pozbmf0jOkpp0YdWYcLs3gIb61Aq5ByMpRNU=
-netlandish.com/x/gobwebs-oauth2 v0.2.12 h1:lzuTTsqYb8awrhcqNE+jgOeOgfm4dRkCx8IbBKGsW1I=
-netlandish.com/x/gobwebs-oauth2 v0.2.12/go.mod h1:wAU8uUiML1eX/6/DLcz2rBwnYJB3lTnU7mmFlQjxlA8=
-netlandish.com/x/gobwebs-ses-feedback v0.2.12 h1:KrR8B2xXDWPpID+CrU5MRp7PvxVcGCavYNoQpyhryQI=
-netlandish.com/x/gobwebs-ses-feedback v0.2.12/go.mod h1:ZKDhfcyE03cU3T9WCY1P0a1Wfl5HvDmApA3fmy37VfY=
+netlandish.com/x/gobwebs v0.1.15 h1:fvyJbWz1b9MQJWoV2Jb/DWAQrOQDwhmIr5XC4gy6P44=
+netlandish.com/x/gobwebs v0.1.15/go.mod h1:2jf9Zn0yiggw+lXtk+aP5PlXa19fExCOvAsxaJPhmv0=
+netlandish.com/x/gobwebs-auditlog v0.3.2 h1:mG3y/gA9wLFbm172JAg3qhQXsviL7AEUw1TAKMvuEVw=
+netlandish.com/x/gobwebs-auditlog v0.3.2/go.mod h1:Hp/tmzsy6Cum7w/s3xeA7iXHOkTVCxLYmU7mEXJZuL4=
+netlandish.com/x/gobwebs-formguard v0.2.13 h1:bqolzDBFLYk9V3qglIXccMEefIoFlCHrte7UjRyN9EY=
+netlandish.com/x/gobwebs-formguard v0.2.13/go.mod h1:3bH1yWdbFauqMr+CP5hmsOSt4VHIY4qfo4wPQfRnasg=
+netlandish.com/x/gobwebs-graphql v0.2.14 h1:rQ98bzgEat9/FSbKTqYwJi6juIQ2Rh1RTc50dG2XAl8=
+netlandish.com/x/gobwebs-graphql v0.2.14/go.mod h1:T45dDN3aIbpOX+rjAMyxa/yZuB3HZqgPAyEEypVWIiE=
+netlandish.com/x/gobwebs-oauth2 v0.2.13 h1:Wco3mWNzXIq5PxdgrvWLXKO6kCH6G0GiHJgkyc9U7KI=
+netlandish.com/x/gobwebs-oauth2 v0.2.13/go.mod h1:4+LM3EHqQ0gtONbVdExgZBNckI/Pmx23XELZiXv7fpw=
+netlandish.com/x/gobwebs-ses-feedback v0.2.13 h1:PFKHqv4cOfOG+rx5zQnl/tmYYQRrW+SP1SaKJ29b1e8=
+netlandish.com/x/gobwebs-ses-feedback v0.2.13/go.mod h1:HTABFx5jepJP3fiUpqmlXKJ+Ej/ZTGCdDFO724aFlpc=
 petersanchez.com/x/carrier v0.2.4 h1:3XgM4bbAg9FfisWwYoq8c5m0nRCEFj8sdJUDZEIDJaQ=
 petersanchez.com/x/carrier v0.2.4/go.mod h1:GLiDI9OThDmruufk/VHlR6Ihvq/hIJQyA5beU6AFNYk=
 petersanchez.com/x/carrier/ses v0.0.0-20251028135020-aeeb26831d7f h1:NrttT1y8J1tNfVczIYmuK9Txa8vj8G/4Rv40C+6BzK8=
-- 
2.54.0

