From 2502f971aba63221aae46da0127e7d6a1d74a86c Mon Sep 17 00:00:00 2001 From: Tim deBoer Date: Tue, 9 Sep 2025 09:07:48 -0400 Subject: [PATCH 1/3] Broadcast clarification responses Adds a comment to the Contest API about keeping referential integrity when the jury responds to a private message with a broadcast. (Corresponding CDS issue #1224 opened in ICPC tools repo) Adds a comment to the CCS requirement indicating best practice is to use internet-style responses. Fixes #221. --- Contest_API.md | 3 +++ Contest_Control_System_Requirements.md | 5 ++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/Contest_API.md b/Contest_API.md index 587e120a..ae9c1fdb 100644 --- a/Contest_API.md +++ b/Contest_API.md @@ -1820,6 +1820,9 @@ Properties of clarification message objects: The recipients of a clarification are the union of `to_team_ids` and `to_group_ids`. A clarification is sent to all teams if `from_team_id`, `to_team_ids` and `to_group_ids` are null. Note that if `from_team_id` is not `null`, then both `to_team_ids` and `to_group_ids` must be `null`. That is, teams cannot send messages to other teams or groups. +Clarifications between a team and the jury are typically private. If the jury responds with a broadcast to all teams, the +reply_to_id should be removed for everyone who couldn't see the original message in order to preserve referrential integrity. + #### Modifying clarifications To add a clarification, clients can use the `POST` method on the clarifications endpoint or the diff --git a/Contest_Control_System_Requirements.md b/Contest_Control_System_Requirements.md index a5b2791c..4d2bba41 100644 --- a/Contest_Control_System_Requirements.md +++ b/Contest_Control_System_Requirements.md @@ -640,7 +640,10 @@ following operations: - Determine, for any specific clarification request, what answer was returned to the team if the clar has already been answered. - Compose an answer to the clar and send it, along with the text of the original - clarification request, to the team. + clarification request, to the team. The best practice is to include the + original clarification text as an internet-style response, which allows the judge + to respond to multiple points or edit it, and doesn't require the original + clarification text to understand the response. - Optionally choose to also send the clarification request text and answer to all teams in the contest. - Change the category of a clarification request. From cbb4985ba84e6e333492c41fa12a74f45ab89bbc Mon Sep 17 00:00:00 2001 From: Tim deBoer Date: Mon, 15 Sep 2025 08:25:50 -0400 Subject: [PATCH 2/3] Reword Co-authored-by: Jaap Eldering --- Contest_API.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Contest_API.md b/Contest_API.md index ae9c1fdb..cb11226b 100644 --- a/Contest_API.md +++ b/Contest_API.md @@ -1820,8 +1820,8 @@ Properties of clarification message objects: The recipients of a clarification are the union of `to_team_ids` and `to_group_ids`. A clarification is sent to all teams if `from_team_id`, `to_team_ids` and `to_group_ids` are null. Note that if `from_team_id` is not `null`, then both `to_team_ids` and `to_group_ids` must be `null`. That is, teams cannot send messages to other teams or groups. -Clarifications between a team and the jury are typically private. If the jury responds with a broadcast to all teams, the -reply_to_id should be removed for everyone who couldn't see the original message in order to preserve referrential integrity. +Clarifications between a team and the jury are typically private. If the jury sends a response to others than just the original team, then the +`reply_to_id` should be removed for everyone who couldn't see the original message in order to preserve referential integrity. #### Modifying clarifications From ca43cb9f42373ff654e07db11d9a2a25d48172b8 Mon Sep 17 00:00:00 2001 From: Tim deBoer Date: Tue, 14 Oct 2025 14:29:03 -0400 Subject: [PATCH 3/3] Reworded reply_to_id and Internet style quoting Response to feedback: - reworded sentence on removing reply_to_id to be less awkward. - explained internet-style quoting. --- Contest_API.md | 4 ++-- Contest_Control_System_Requirements.md | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/Contest_API.md b/Contest_API.md index cb11226b..3e678c62 100644 --- a/Contest_API.md +++ b/Contest_API.md @@ -1820,8 +1820,8 @@ Properties of clarification message objects: The recipients of a clarification are the union of `to_team_ids` and `to_group_ids`. A clarification is sent to all teams if `from_team_id`, `to_team_ids` and `to_group_ids` are null. Note that if `from_team_id` is not `null`, then both `to_team_ids` and `to_group_ids` must be `null`. That is, teams cannot send messages to other teams or groups. -Clarifications between a team and the jury are typically private. If the jury sends a response to others than just the original team, then the -`reply_to_id` should be removed for everyone who couldn't see the original message in order to preserve referential integrity. +Clarifications between a team and the jury are typically private. If the jury replies to a clarification and chooses to include additional recipients, +then in order to preserve referential integrity the `reply_to_id` should be removed for everyone who couldn't see the original message. #### Modifying clarifications diff --git a/Contest_Control_System_Requirements.md b/Contest_Control_System_Requirements.md index 4d2bba41..0e2be989 100644 --- a/Contest_Control_System_Requirements.md +++ b/Contest_Control_System_Requirements.md @@ -641,7 +641,8 @@ following operations: the team if the clar has already been answered. - Compose an answer to the clar and send it, along with the text of the original clarification request, to the team. The best practice is to include the - original clarification text as an internet-style response, which allows the judge + original clarification text in its entirety, prepending every line by `> ` + (also known as internet-style quoting). This allows the judge to respond to multiple points or edit it, and doesn't require the original clarification text to understand the response. - Optionally choose to also send the clarification request text and answer to