Skip to content

Commit 05582ad

Browse files
committed
2026-04-17
1 parent 344fe29 commit 05582ad

9 files changed

Lines changed: 246 additions & 20 deletions

File tree

squid-dev/2026-April.txt

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1168,3 +1168,77 @@ SslBump context.
11681168
Alex.
11691169

11701170

1171+
From ankor2023 at gmail.com Fri Apr 17 13:08:49 2026
1172+
From: ankor2023 at gmail.com (Andrey K)
1173+
Date: Fri, 17 Apr 2026 16:08:49 +0300
1174+
Subject: [squid-dev] Issue with acl note (without -m) splitting helper
1175+
tokens containing commas
1176+
Message-ID: <CADJd0Y1M=Z9VY6spPMcR1SoFgrfDKuWdbWM=6=A=CEoS+oi+Og@mail.gmail.com>
1177+
1178+
Hello,
1179+
1180+
While working with annotations, I?ve noticed an inconsistency in how acl
1181+
note (without the -m option) handles tokens received from helpers when they
1182+
contain a comma.
1183+
1184+
According to the documentation, an ACL like this:
1185+
acl staff note group Staff:accountants,lawyers,security
1186+
should match a helper response such as:
1187+
group="Staff:accountants,lawyers,security"
1188+
1189+
However, this is not the case. The helper's response is split into tokens
1190+
using a comma as the default delimiter. As a result, only ACLs like the
1191+
following will match:
1192+
acl staff note group lawyers
1193+
1194+
This behavior occurs because in Acl::NoteCheck::matchNotes(), a comma is
1195+
passed as the default delimiter to the expandListEntries() function:
1196+
bool
1197+
ACLNoteStrategy::matchNotes(ACLData<MatchType> *noteData, const
1198+
NotePairs *note) const
1199+
{
1200+
const NotePairs::Entries &entries =
1201+
note->expandListEntries(&delimiters.value);
1202+
for (auto e: entries)
1203+
if (noteData->match(e.getRaw()))
1204+
return true;
1205+
return false;
1206+
}
1207+
1208+
After reviewing the source code, I found that the comma is added in
1209+
src/acl/Note.h within the AnnotationCheck class constructor:
1210+
AnnotationCheck(): delimiters(CharacterSet("__FILE__", ",")) {}
1211+
1212+
Using a comma as the default delimiter makes it difficult to validate full
1213+
tokens that may naturally contain commas.
1214+
1215+
I would like to propose two changes:
1216+
1. Removing the default comma delimiter.
1217+
I am prepared to submit a simple PR to exclude this comma to fix the
1218+
incorrect matching of strings containing commas.
1219+
However, I realize this might be a breaking change for users who currently
1220+
rely on this implicit splitting behavior.
1221+
1222+
2. Supporting custom delimiters in helper responses.
1223+
I also propose a PR to support a format where tag values can be passed as a
1224+
list with a custom delimiter:
1225+
<key>=<delimiter>"<value1><delimiter><value2>..."
1226+
For example:
1227+
group=,"group1,group2,group3"
1228+
clt_con_tag=;"tag1;tag2;tag3"
1229+
In this PR, the helper response would be tokenized based on the specified
1230+
custom delimiter, while still supporting delimiter escaping with a
1231+
backslash (\).
1232+
In this scenario, having a hardcoded comma as the default delimiter in
1233+
the AnnotationCheck
1234+
class would also create complications.
1235+
1236+
I would appreciate your thoughts on these proposals and whether they align
1237+
with the project's roadmap.
1238+
1239+
Kind regards,
1240+
Ankor.
1241+
-------------- next part --------------
1242+
An HTML attachment was scrubbed...
1243+
URL: <http://lists.squid-cache.org/pipermail/squid-dev/attachments/20260417/7fab43b9/attachment.htm>
1244+

squid-dev/2026-April/010015.html

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
</style>
1414
<META http-equiv="Content-Type" content="text/html; charset=us-ascii">
1515
<LINK REL="Previous" HREF="010013.html">
16-
16+
<LINK REL="Next" HREF="010017.html">
1717
</HEAD>
1818
<BODY BGCOLOR="#ffffff">
1919
<H1>[squid-dev] form PROXY header for cache_peer requests</H1>
@@ -25,7 +25,8 @@ <H1>[squid-dev] form PROXY header for cache_peer requests</H1>
2525
<P><UL>
2626
<LI>Previous message (by thread): <A HREF="010013.html">[squid-dev] form PROXY header for cache_peer requests
2727
</A></li>
28-
28+
<LI>Next message (by thread): <A HREF="010017.html">[squid-dev] Issue with acl note (without -m) splitting helper tokens containing commas
29+
</A></li>
2930
<LI> <B>Messages sorted by:</B>
3031
<a href="date.html#10015">[ date ]</a>
3132
<a href="thread.html#10015">[ thread ]</a>
@@ -62,13 +63,15 @@ <H1>[squid-dev] form PROXY header for cache_peer requests</H1>
6263
</PRE>
6364

6465

66+
6567
<!--endarticle-->
6668
<HR>
6769
<P><UL>
6870
<!--threads-->
6971
<LI>Previous message (by thread): <A HREF="010013.html">[squid-dev] form PROXY header for cache_peer requests
7072
</A></li>
71-
73+
<LI>Next message (by thread): <A HREF="010017.html">[squid-dev] Issue with acl note (without -m) splitting helper tokens containing commas
74+
</A></li>
7275
<LI> <B>Messages sorted by:</B>
7376
<a href="date.html#10015">[ date ]</a>
7477
<a href="thread.html#10015">[ thread ]</a>

squid-dev/2026-April/010017.html

Lines changed: 124 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,124 @@
1+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2+
<HTML>
3+
<HEAD>
4+
<TITLE> [squid-dev] Issue with acl note (without -m) splitting helper tokens containing commas
5+
</TITLE>
6+
<LINK REL="Index" HREF="index.html" >
7+
<LINK REL="made" HREF="mailto:squid-dev%40lists.squid-cache.org?Subject=Re%3A%20%5Bsquid-dev%5D%20Issue%20with%20acl%20note%20%28without%20-m%29%20splitting%20helper%0A%20tokens%20containing%20commas&In-Reply-To=%3CCADJd0Y1M%3DZ9VY6spPMcR1SoFgrfDKuWdbWM%3D6%3DA%3DCEoS%2Boi%2BOg%40mail.gmail.com%3E">
8+
<META NAME="robots" CONTENT="index,nofollow">
9+
<style type="text/css">
10+
pre {
11+
white-space: pre-wrap; /* css-2.1, curent FF, Opera, Safari */
12+
}
13+
</style>
14+
<META http-equiv="Content-Type" content="text/html; charset=us-ascii">
15+
<LINK REL="Previous" HREF="010015.html">
16+
17+
</HEAD>
18+
<BODY BGCOLOR="#ffffff">
19+
<H1>[squid-dev] Issue with acl note (without -m) splitting helper tokens containing commas</H1>
20+
<B>Andrey K</B>
21+
<A HREF="mailto:squid-dev%40lists.squid-cache.org?Subject=Re%3A%20%5Bsquid-dev%5D%20Issue%20with%20acl%20note%20%28without%20-m%29%20splitting%20helper%0A%20tokens%20containing%20commas&In-Reply-To=%3CCADJd0Y1M%3DZ9VY6spPMcR1SoFgrfDKuWdbWM%3D6%3DA%3DCEoS%2Boi%2BOg%40mail.gmail.com%3E"
22+
TITLE="[squid-dev] Issue with acl note (without -m) splitting helper tokens containing commas">ankor2023 at gmail.com
23+
</A><BR>
24+
<I>Fri Apr 17 13:08:49 UTC 2026</I>
25+
<P><UL>
26+
<LI>Previous message (by thread): <A HREF="010015.html">[squid-dev] form PROXY header for cache_peer requests
27+
</A></li>
28+
29+
<LI> <B>Messages sorted by:</B>
30+
<a href="date.html#10017">[ date ]</a>
31+
<a href="thread.html#10017">[ thread ]</a>
32+
<a href="subject.html#10017">[ subject ]</a>
33+
<a href="author.html#10017">[ author ]</a>
34+
</LI>
35+
</UL>
36+
<HR>
37+
<!--beginarticle-->
38+
<PRE>Hello,
39+
40+
While working with annotations, I&#8217;ve noticed an inconsistency in how acl
41+
note (without the -m option) handles tokens received from helpers when they
42+
contain a comma.
43+
44+
According to the documentation, an ACL like this:
45+
acl staff note group Staff:accountants,lawyers,security
46+
should match a helper response such as:
47+
group=&quot;Staff:accountants,lawyers,security&quot;
48+
49+
However, this is not the case. The helper's response is split into tokens
50+
using a comma as the default delimiter. As a result, only ACLs like the
51+
following will match:
52+
acl staff note group lawyers
53+
54+
This behavior occurs because in Acl::NoteCheck::matchNotes(), a comma is
55+
passed as the default delimiter to the expandListEntries() function:
56+
bool
57+
ACLNoteStrategy::matchNotes(ACLData&lt;MatchType&gt; *noteData, const
58+
NotePairs *note) const
59+
{
60+
const NotePairs::Entries &amp;entries =
61+
note-&gt;expandListEntries(&amp;delimiters.value);
62+
for (auto e: entries)
63+
if (noteData-&gt;match(e.getRaw()))
64+
return true;
65+
return false;
66+
}
67+
68+
After reviewing the source code, I found that the comma is added in
69+
src/acl/Note.h within the AnnotationCheck class constructor:
70+
AnnotationCheck(): delimiters(CharacterSet(&quot;__FILE__&quot;, &quot;,&quot;)) {}
71+
72+
Using a comma as the default delimiter makes it difficult to validate full
73+
tokens that may naturally contain commas.
74+
75+
I would like to propose two changes:
76+
1. Removing the default comma delimiter.
77+
I am prepared to submit a simple PR to exclude this comma to fix the
78+
incorrect matching of strings containing commas.
79+
However, I realize this might be a breaking change for users who currently
80+
rely on this implicit splitting behavior.
81+
82+
2. Supporting custom delimiters in helper responses.
83+
I also propose a PR to support a format where tag values can be passed as a
84+
list with a custom delimiter:
85+
&lt;key&gt;=&lt;delimiter&gt;&quot;&lt;value1&gt;&lt;delimiter&gt;&lt;value2&gt;...&quot;
86+
For example:
87+
group=,&quot;group1,group2,group3&quot;
88+
clt_con_tag=;&quot;tag1;tag2;tag3&quot;
89+
In this PR, the helper response would be tokenized based on the specified
90+
custom delimiter, while still supporting delimiter escaping with a
91+
backslash (\).
92+
In this scenario, having a hardcoded comma as the default delimiter in
93+
the AnnotationCheck
94+
class would also create complications.
95+
96+
I would appreciate your thoughts on these proposals and whether they align
97+
with the project's roadmap.
98+
99+
Kind regards,
100+
Ankor.
101+
-------------- next part --------------
102+
An HTML attachment was scrubbed...
103+
URL: &lt;<A HREF="http://lists.squid-cache.org/pipermail/squid-dev/attachments/20260417/7fab43b9/attachment.htm">http://lists.squid-cache.org/pipermail/squid-dev/attachments/20260417/7fab43b9/attachment.htm</A>&gt;
104+
</PRE>
105+
106+
<!--endarticle-->
107+
<HR>
108+
<P><UL>
109+
<!--threads-->
110+
<LI>Previous message (by thread): <A HREF="010015.html">[squid-dev] form PROXY header for cache_peer requests
111+
</A></li>
112+
113+
<LI> <B>Messages sorted by:</B>
114+
<a href="date.html#10017">[ date ]</a>
115+
<a href="thread.html#10017">[ thread ]</a>
116+
<a href="subject.html#10017">[ subject ]</a>
117+
<a href="author.html#10017">[ author ]</a>
118+
</LI>
119+
</UL>
120+
121+
<hr>
122+
<a href="https://lists.squid-cache.org/listinfo/squid-dev">More information about the squid-dev
123+
mailing list</a><br>
124+
</body></html>

squid-dev/2026-April/author.html

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,15 @@ <h1>April 2026 Archives by author</h1>
1919
</a></b></li>
2020
</ul>
2121
<p><b>Starting:</b> <i>Wed Apr 1 16:12:37 UTC 2026</i><br>
22-
<b>Ending:</b> <i>Thu Apr 16 20:05:40 UTC 2026</i><br>
23-
<b>Messages:</b> 18<p>
22+
<b>Ending:</b> <i>Fri Apr 17 13:08:49 UTC 2026</i><br>
23+
<b>Messages:</b> 19<p>
2424
<ul>
2525

26+
<LI><A HREF="010017.html">[squid-dev] Issue with acl note (without -m) splitting helper tokens containing commas
27+
</A><A NAME="10017">&nbsp;</A>
28+
<I>Andrey K
29+
</I>
30+
2631
<LI><A HREF="009999.html">[squid-dev] forward bumped traffic to parent in plain form
2732
</A><A NAME="9999">&nbsp;</A>
2833
<I>Anthony Pankov
@@ -116,8 +121,8 @@ <h1>April 2026 Archives by author</h1>
116121
</ul>
117122
<p>
118123
<a name="end"><b>Last message date:</b></a>
119-
<i>Thu Apr 16 20:05:40 UTC 2026</i><br>
120-
<b>Archived on:</b> <i>Thu Apr 16 20:05:43 UTC 2026</i>
124+
<i>Fri Apr 17 13:08:49 UTC 2026</i><br>
125+
<b>Archived on:</b> <i>Fri Apr 17 13:09:05 UTC 2026</i>
121126
<p>
122127
<ul>
123128
<li> <b>Messages sorted by:</b>

squid-dev/2026-April/date.html

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ <h1>April 2026 Archives by date</h1>
1919
</a></b></li>
2020
</ul>
2121
<p><b>Starting:</b> <i>Wed Apr 1 16:12:37 UTC 2026</i><br>
22-
<b>Ending:</b> <i>Thu Apr 16 20:05:40 UTC 2026</i><br>
23-
<b>Messages:</b> 18<p>
22+
<b>Ending:</b> <i>Fri Apr 17 13:08:49 UTC 2026</i><br>
23+
<b>Messages:</b> 19<p>
2424
<ul>
2525

2626
<LI><A HREF="009999.html">[squid-dev] forward bumped traffic to parent in plain form
@@ -111,13 +111,18 @@ <h1>April 2026 Archives by date</h1>
111111
<LI><A HREF="010016.html">[squid-dev] forward bumped traffic to parent in plain form
112112
</A><A NAME="10016">&nbsp;</A>
113113
<I>Alex Rousskov
114+
</I>
115+
116+
<LI><A HREF="010017.html">[squid-dev] Issue with acl note (without -m) splitting helper tokens containing commas
117+
</A><A NAME="10017">&nbsp;</A>
118+
<I>Andrey K
114119
</I>
115120

116121
</ul>
117122
<p>
118123
<a name="end"><b>Last message date:</b></a>
119-
<i>Thu Apr 16 20:05:40 UTC 2026</i><br>
120-
<b>Archived on:</b> <i>Thu Apr 16 20:05:43 UTC 2026</i>
124+
<i>Fri Apr 17 13:08:49 UTC 2026</i><br>
125+
<b>Archived on:</b> <i>Fri Apr 17 13:09:05 UTC 2026</i>
121126
<p>
122127
<ul>
123128
<li> <b>Messages sorted by:</b>

squid-dev/2026-April/subject.html

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ <h1>April 2026 Archives by subject</h1>
1919
</a></b></li>
2020
</ul>
2121
<p><b>Starting:</b> <i>Wed Apr 1 16:12:37 UTC 2026</i><br>
22-
<b>Ending:</b> <i>Thu Apr 16 20:05:40 UTC 2026</i><br>
23-
<b>Messages:</b> 18<p>
22+
<b>Ending:</b> <i>Fri Apr 17 13:08:49 UTC 2026</i><br>
23+
<b>Messages:</b> 19<p>
2424
<ul>
2525

2626
<LI><A HREF="010010.html">[squid-dev] form PROXY header for cache_peer requests
@@ -111,13 +111,18 @@ <h1>April 2026 Archives by subject</h1>
111111
<LI><A HREF="010016.html">[squid-dev] forward bumped traffic to parent in plain form
112112
</A><A NAME="10016">&nbsp;</A>
113113
<I>Alex Rousskov
114+
</I>
115+
116+
<LI><A HREF="010017.html">[squid-dev] Issue with acl note (without -m) splitting helper tokens containing commas
117+
</A><A NAME="10017">&nbsp;</A>
118+
<I>Andrey K
114119
</I>
115120

116121
</ul>
117122
<p>
118123
<a name="end"><b>Last message date:</b></a>
119-
<i>Thu Apr 16 20:05:40 UTC 2026</i><br>
120-
<b>Archived on:</b> <i>Thu Apr 16 20:05:43 UTC 2026</i>
124+
<i>Fri Apr 17 13:08:49 UTC 2026</i><br>
125+
<b>Archived on:</b> <i>Fri Apr 17 13:09:05 UTC 2026</i>
121126
<p>
122127
<ul>
123128
<li> <b>Messages sorted by:</b>

squid-dev/2026-April/thread.html

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ <h1>April 2026 Archives by thread</h1>
1919
</a></b></li>
2020
</ul>
2121
<p><b>Starting:</b> <i>Wed Apr 1 16:12:37 UTC 2026</i><br>
22-
<b>Ending:</b> <i>Thu Apr 16 20:05:40 UTC 2026</i><br>
23-
<b>Messages:</b> 18<p>
22+
<b>Ending:</b> <i>Fri Apr 17 13:08:49 UTC 2026</i><br>
23+
<b>Messages:</b> 19<p>
2424
<ul>
2525

2626
<!--0 01775059957.9999- -->
@@ -145,11 +145,17 @@ <h1>April 2026 Archives by thread</h1>
145145
</UL>
146146
</UL>
147147
</UL>
148+
<!--0 01776431329.10017- -->
149+
<LI><A HREF="010017.html">[squid-dev] Issue with acl note (without -m) splitting helper tokens containing commas
150+
</A><A NAME="10017">&nbsp;</A>
151+
<I>Andrey K
152+
</I>
153+
148154
</ul>
149155
<p>
150156
<a name="end"><b>Last message date:</b></a>
151-
<i>Thu Apr 16 20:05:40 UTC 2026</i><br>
152-
<b>Archived on:</b> <i>Thu Apr 16 20:05:43 UTC 2026</i>
157+
<i>Fri Apr 17 13:08:49 UTC 2026</i><br>
158+
<b>Archived on:</b> <i>Fri Apr 17 13:09:05 UTC 2026</i>
153159
<p>
154160
<ul>
155161
<li> <b>Messages sorted by:</b>
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
<tt>
2+
&lt;div&nbsp;dir=&quot;ltr&quot;&gt;Hello,&lt;div&gt;&lt;br&gt;While&nbsp;working&nbsp;with&nbsp;annotations,&nbsp;I’ve&nbsp;noticed&nbsp;an&nbsp;inconsistency&nbsp;in&nbsp;how&nbsp;&lt;font&nbsp;face=&quot;monospace&quot;&gt;acl&nbsp;note&lt;/font&gt;&nbsp;(without&nbsp;the&nbsp;&lt;font&nbsp;face=&quot;monospace&quot;&gt;-m&lt;/font&gt;&nbsp;option)&nbsp;handles&nbsp;tokens&nbsp;received&nbsp;from&nbsp;helpers&nbsp;when&nbsp;they&nbsp;contain&nbsp;a&nbsp;comma.&lt;br&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;According&nbsp;to&nbsp;the&nbsp;documentation,&nbsp;an&nbsp;ACL&nbsp;like&nbsp;this:&lt;br&gt;&lt;font&nbsp;face=&quot;monospace&quot;&gt; &nbsp; &nbsp;acl&nbsp;staff&nbsp;note&nbsp;group&nbsp;Staff:accountants,lawyers,security&lt;/font&gt;&lt;br&gt;should&nbsp;match&nbsp;a&nbsp;helper&nbsp;response&nbsp;such&nbsp;as:&lt;br&gt;&lt;font&nbsp;face=&quot;monospace&quot;&gt; &nbsp; &nbsp;group=&quot;Staff:accountants,lawyers,security&quot;&lt;/font&gt;&lt;br&gt;&lt;br&gt;&lt;div&gt;However,&nbsp;this&nbsp;is&nbsp;not&nbsp;the&nbsp;case.&nbsp;The&nbsp;helper&#39;s&nbsp;response&nbsp;is&nbsp;split&nbsp;into&nbsp;tokens&nbsp;using&nbsp;a&nbsp;comma&nbsp;as&nbsp;the&nbsp;default&nbsp;delimiter.&nbsp;As&nbsp;a&nbsp;result,&nbsp;only&nbsp;ACLs&nbsp;like&nbsp;the&nbsp;following&nbsp;will&nbsp;match:&lt;/div&gt;&lt;div&gt;&lt;font&nbsp;face=&quot;monospace&quot;&gt; &nbsp; &nbsp;acl&nbsp;staff&nbsp;note&nbsp;group&nbsp;lawyers&lt;/font&gt;&lt;br&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;This&nbsp;behavior&nbsp;occurs&nbsp;because&nbsp;in&nbsp;Acl::NoteCheck::matchNotes(),&nbsp;a&nbsp;comma&nbsp;is&nbsp;passed&nbsp;as&nbsp;the&nbsp;default&nbsp;delimiter&nbsp;to&nbsp;the&nbsp;expandListEntries()&nbsp;function:&lt;/div&gt;&lt;div&gt;&lt;font&nbsp;face=&quot;monospace&quot;&gt; &nbsp; &nbsp;bool&lt;br&gt; &nbsp; &nbsp;ACLNoteStrategy::matchNotes(ACLData&lt;MatchType&gt;&nbsp;*noteData,&nbsp;const&nbsp;NotePairs&nbsp;*note)&nbsp;const&lt;br&gt; &nbsp; &nbsp;{&lt;br&gt; &nbsp; &nbsp; &nbsp; &nbsp;const&nbsp;NotePairs::Entries&nbsp;&amp;entries&nbsp;=&nbsp;note-&gt;expandListEntries(&amp;delimiters.value);&lt;br&gt; &nbsp; &nbsp; &nbsp; &nbsp;for&nbsp;(auto&nbsp;e:&nbsp;entries)&lt;br&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if&nbsp;(noteData-&gt;match(e.getRaw()))&lt;br&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return&nbsp;true;&lt;br&gt; &nbsp; &nbsp; &nbsp; &nbsp;return&nbsp;false;&lt;br&gt; &nbsp; &nbsp;}&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font&nbsp;face=&quot;monospace&quot;&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;After&nbsp;reviewing&nbsp;the&nbsp;source&nbsp;code,&nbsp;I&nbsp;found&nbsp;that&nbsp;the&nbsp;comma&nbsp;is&nbsp;added&nbsp;in&nbsp;src/acl/Note.h&nbsp;within&nbsp;the&nbsp;AnnotationCheck&nbsp;class&nbsp;constructor:&lt;br&gt;&lt;font&nbsp;face=&quot;monospace&quot;&gt; &nbsp; &nbsp;AnnotationCheck():&nbsp;delimiters(CharacterSet(&quot;__FILE__&quot;,&nbsp;&quot;,&quot;))&nbsp;{}&lt;/font&gt;&lt;br&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Using&nbsp;a&nbsp;comma&nbsp;as&nbsp;the&nbsp;default&nbsp;delimiter&nbsp;makes&nbsp;it&nbsp;difficult&nbsp;to&nbsp;validate&nbsp;full&nbsp;tokens&nbsp;that&nbsp;may&nbsp;naturally&nbsp;contain&nbsp;commas.&lt;br&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I&nbsp;would&nbsp;like&nbsp;to&nbsp;propose&nbsp;two&nbsp;changes:&lt;br&gt;1.&nbsp;Removing&nbsp;the&nbsp;default&nbsp;comma&nbsp;delimiter.&lt;/div&gt;&lt;div&gt;I&nbsp;am&nbsp;prepared&nbsp;to&nbsp;submit&nbsp;a&nbsp;simple&nbsp;PR&nbsp;to&nbsp;exclude&nbsp;this&nbsp;comma&nbsp;to&nbsp;fix&nbsp;the&nbsp;incorrect&nbsp;matching&nbsp;of&nbsp;strings&nbsp;containing&nbsp;commas. &lt;/div&gt;&lt;div&gt;However,&nbsp;I&nbsp;realize&nbsp;this&nbsp;might&nbsp;be&nbsp;a&nbsp;breaking&nbsp;change&nbsp;for&nbsp;users&nbsp;who&nbsp;currently&nbsp;rely&nbsp;on&nbsp;this&nbsp;implicit&nbsp;splitting&nbsp;behavior.&lt;/div&gt;&lt;div&gt;&lt;br&gt;2.&nbsp;Supporting&nbsp;custom&nbsp;delimiters&nbsp;in&nbsp;helper&nbsp;responses.&lt;/div&gt;&lt;div&gt;I&nbsp;also&nbsp;propose&nbsp;a&nbsp;PR&nbsp;to&nbsp;support&nbsp;a&nbsp;format&nbsp;where&nbsp;tag&nbsp;values&nbsp;can&nbsp;be&nbsp;passed&nbsp;as&nbsp;a&nbsp;list&nbsp;with&nbsp;a&nbsp;custom&nbsp;delimiter:&lt;br&gt;&lt;font&nbsp;face=&quot;monospace&quot;&gt; &nbsp; &nbsp;&lt;key&gt;=&lt;delimiter&gt;&quot;&lt;value1&gt;&lt;delimiter&gt;&lt;value2&gt;...&quot;&lt;/font&gt;&lt;br&gt;For&nbsp;example:&lt;br&gt;&lt;font&nbsp;face=&quot;monospace&quot;&gt; &nbsp; &nbsp;group=,&quot;group1,group2,group3&quot;&lt;br&gt; &nbsp; &nbsp;clt_con_tag=;&quot;tag1;tag2;tag3&quot;&lt;/font&gt;&lt;br&gt;In&nbsp;this&nbsp;PR,&nbsp;the&nbsp;helper&nbsp;response&nbsp;would&nbsp;be&nbsp;tokenized&nbsp;based&nbsp;on&nbsp;the&nbsp;specified&nbsp;custom&nbsp;delimiter,&nbsp;while&nbsp;still&nbsp;supporting&nbsp;delimiter&nbsp;escaping&nbsp;with&nbsp;a&nbsp;backslash&nbsp;(&lt;font&nbsp;face=&quot;monospace&quot;&gt;\&lt;/font&gt;).&lt;br&gt;In&nbsp;this&nbsp;scenario,&nbsp;having&nbsp;a&nbsp;hardcoded&nbsp;comma&nbsp;as&nbsp;the&nbsp;default&nbsp;delimiter&nbsp;in&nbsp;the&nbsp;&lt;font&nbsp;face=&quot;monospace&quot;&gt;AnnotationCheck&nbsp;&lt;/font&gt;class&nbsp;would&nbsp;also&nbsp;create&nbsp;complications.&lt;/div&gt;&lt;div&gt;&lt;br&gt;I&nbsp;would&nbsp;appreciate&nbsp;your&nbsp;thoughts&nbsp;on&nbsp;these&nbsp;proposals&nbsp;and&nbsp;whether&nbsp;they&nbsp;align&nbsp;with&nbsp;the&nbsp;project&#39;s&nbsp;roadmap.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Kind&nbsp;regards,&lt;/div&gt;&lt;div&gt; &nbsp; &nbsp;Ankor.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;<br>
3+
4+
</tt>

0 commit comments

Comments
 (0)