diff --git a/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Historian.QuestDb/QuestDbAggregateQueries.cs b/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Historian.QuestDb/QuestDbAggregateQueries.cs
index e6380aab..7bff0c19 100644
--- a/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Historian.QuestDb/QuestDbAggregateQueries.cs
+++ b/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Historian.QuestDb/QuestDbAggregateQueries.cs
@@ -101,6 +101,12 @@ internal static class QuestDbAggregateQueries
/// being written. One reference means one reader at one table version. A windowed (row_number())
/// single-scan form was also correct but ~2× slower; this one is not slower than the old query.
///
+ ///
+ /// ⚠️ first()/last() following timestamp order is QuestDB 10.0.1 IMPLEMENTATION behaviour (rows reach
+ /// the GROUP BY in row-id order, and the parallel merge keeps row id), not a documented guarantee. It was verified
+ /// on 20M rows with O3 inserts, single-threaded and parallel. Adding a JOIN, ORDER BY or UNION inside
+ /// Classified, or upgrading QuestDB, can silently break Start/End — re-verify first(ts) = min(ts).
+ ///
///
/// Prefixed sample table name.
/// The SQL text.