tests: align compaction snapshots with current main behavior

This commit is contained in:
Charles Cunningham
2026-02-11 12:38:21 -08:00
parent 37791ab7f0
commit dd24aa0731
10 changed files with 65 additions and 53 deletions

View File

@@ -3072,6 +3072,7 @@ async fn auto_compact_runs_when_reasoning_header_clears_between_turns() {
}
#[tokio::test(flavor = "multi_thread", worker_threads = 2)]
// TODO(ccunningham): Update once pre-turn compaction includes incoming user input on main.
async fn snapshot_request_shape_pre_turn_compaction_including_incoming_user_message() {
skip_if_no_network!();
@@ -3156,8 +3157,8 @@ async fn snapshot_request_shape_pre_turn_compaction_including_incoming_user_mess
"expected compact request to include summarization prompt"
);
assert!(
compact_shape.contains("USER_THREE"),
"expected compact request to include incoming user message"
!compact_shape.contains("USER_THREE"),
"current main behavior excludes incoming user message from pre-turn compaction input"
);
let follow_up_has_incoming_image = requests[3].inputs_of_type("message").iter().any(|item| {
if item.get("role").and_then(Value::as_str) != Some("user") {
@@ -3187,6 +3188,8 @@ async fn snapshot_request_shape_pre_turn_compaction_including_incoming_user_mess
}
#[tokio::test(flavor = "multi_thread", worker_threads = 2)]
// TODO(ccunningham): Update once pre-turn compaction context-overflow handling includes incoming
// user input and emits richer oversized-input messaging on main.
async fn snapshot_request_shape_pre_turn_compaction_context_window_exceeded() {
skip_if_no_network!();
@@ -3198,7 +3201,7 @@ async fn snapshot_request_shape_pre_turn_compaction_context_window_exceeded() {
]);
let mut responses = vec![first_turn];
responses.extend(
(0..7).map(|_| {
(0..6).map(|_| {
sse_failed(
"compact-failed",
"context_length_exceeded",
@@ -3266,19 +3269,13 @@ async fn snapshot_request_shape_pre_turn_compaction_context_window_exceeded() {
);
assert!(
include_attempt_shape.contains("USER_TWO"),
"first pre-turn attempt should include incoming user message"
!include_attempt_shape.contains("USER_TWO"),
"current main behavior excludes incoming user message from pre-turn compaction input"
);
assert!(
error_message.contains(
"Incoming user message and/or turn context is too large to fit in context window"
),
error_message.contains("ran out of room in the model's context window"),
"expected context window exceeded message, got {error_message}"
);
assert!(
error_message.contains("incoming_items_tokens_estimate="),
"expected token estimate in error message, got {error_message}"
);
}
#[tokio::test(flavor = "multi_thread", worker_threads = 2)]

View File

@@ -1468,6 +1468,7 @@ async fn remote_compact_refreshes_stale_developer_instructions_without_resume()
}
#[tokio::test(flavor = "multi_thread", worker_threads = 2)]
// TODO(ccunningham): Update once remote pre-turn compaction includes incoming user input on main.
async fn snapshot_request_shape_remote_pre_turn_compaction_including_incoming_user_message()
-> Result<()> {
skip_if_no_network!(Ok(()));
@@ -1545,8 +1546,8 @@ async fn snapshot_request_shape_remote_pre_turn_compaction_including_incoming_us
])
);
assert!(
compact_shape.contains("USER_THREE"),
"remote compaction request should include incoming user message"
!compact_shape.contains("USER_THREE"),
"current main behavior excludes incoming user message from remote pre-turn compaction input"
);
assert!(
follow_up_shape.contains("<SUMMARY:REMOTE_PRE_TURN_SUMMARY>"),
@@ -1557,6 +1558,8 @@ async fn snapshot_request_shape_remote_pre_turn_compaction_including_incoming_us
}
#[tokio::test(flavor = "multi_thread", worker_threads = 2)]
// TODO(ccunningham): Update once remote pre-turn compaction failure path includes incoming
// user input on main.
async fn snapshot_request_shape_remote_pre_turn_compaction_failure_stops_without_retry()
-> Result<()> {
skip_if_no_network!(Ok(()));
@@ -1643,8 +1646,8 @@ async fn snapshot_request_shape_remote_pre_turn_compaction_failure_stops_without
),])
);
assert!(
include_attempt_shape.contains("USER_TWO"),
"first remote pre-turn compaction attempt should include incoming user message"
!include_attempt_shape.contains("USER_TWO"),
"current main behavior excludes incoming user message from remote pre-turn compaction input"
);
assert!(
error_message.contains("invalid compact payload shape")
@@ -1736,6 +1739,7 @@ async fn snapshot_request_shape_remote_mid_turn_continuation_compaction() -> Res
}
#[tokio::test(flavor = "multi_thread", worker_threads = 2)]
// TODO(ccunningham): Update once manual remote /compact with no prior user turn becomes a no-op.
async fn snapshot_request_shape_remote_manual_compact_without_previous_user_messages() -> Result<()>
{
skip_if_no_network!(Ok(()));
@@ -1775,17 +1779,18 @@ async fn snapshot_request_shape_remote_manual_compact_without_previous_user_mess
assert_eq!(
compact_mock.requests().len(),
0,
"manual remote /compact should skip remote compaction when there is no associated user"
1,
"current main behavior still issues remote compaction for manual /compact without prior user"
);
let compact_request = compact_mock.single_request();
let follow_up_request = responses_mock.single_request();
let follow_up_shape = request_input_shape(&follow_up_request);
insta::assert_snapshot!(
"remote_manual_compact_without_prev_user_shapes",
format!(
"## Remote Post-Compaction History Layout\n{}",
request_input_shape(&follow_up_request)
)
sectioned_request_shapes(&[
("Remote Compaction Request", &compact_request),
("Remote Post-Compaction History Layout", &follow_up_request),
])
);
assert!(
!follow_up_shape.contains("<SUMMARY:REMOTE_MANUAL_EMPTY_SUMMARY>"),

View File

@@ -1,5 +1,6 @@
---
source: core/tests/suite/compact.rs
assertion_line: 3086
expression: "sectioned_request_shapes(&[(\"Local Compaction Request\", &requests[1]),\n(\"Local Post-Compaction History Layout\", &requests[2]),])"
---
## Local Compaction Request
@@ -11,9 +12,9 @@ expression: "sectioned_request_shapes(&[(\"Local Compaction Request\", &requests
05:message/user:<SUMMARIZATION_PROMPT>
## Local Post-Compaction History Layout
00:message/user:USER_ONE
01:message/user:<SUMMARY:MANUAL_SUMMARY>
02:message/developer:<PERMISSIONS_INSTRUCTIONS>
03:message/user:<AGENTS_MD>
04:message/user:<ENVIRONMENT_CONTEXT>
00:message/developer:<PERMISSIONS_INSTRUCTIONS>
01:message/user:<AGENTS_MD>
02:message/user:<ENVIRONMENT_CONTEXT>
03:message/user:USER_ONE
04:message/user:<SUMMARY:MANUAL_SUMMARY>
05:message/user:USER_TWO

View File

@@ -1,5 +1,6 @@
---
source: core/tests/suite/compact.rs
assertion_line: 2878
expression: "sectioned_request_shapes(&[(\"Local Compaction Request (Including Incoming User Message)\",\n&requests[1]),])"
---
## Local Compaction Request (Including Incoming User Message)
@@ -8,5 +9,4 @@ expression: "sectioned_request_shapes(&[(\"Local Compaction Request (Including I
02:message/user:<ENVIRONMENT_CONTEXT>
03:message/user:USER_ONE
04:message/assistant:FIRST_REPLY
05:message/user:USER_TWO
06:message/user:<SUMMARIZATION_PROMPT>
05:message/user:<SUMMARIZATION_PROMPT>

View File

@@ -1,5 +1,6 @@
---
source: core/tests/suite/compact.rs
assertion_line: 2763
expression: "sectioned_request_shapes(&[(\"Local Compaction Request\", &requests[2]),\n(\"Local Post-Compaction History Layout\", &requests[3]),])"
---
## Local Compaction Request
@@ -10,14 +11,13 @@ expression: "sectioned_request_shapes(&[(\"Local Compaction Request\", &requests
04:message/assistant:FIRST_REPLY
05:message/user:USER_TWO
06:message/assistant:SECOND_REPLY
07:message/user:<image> | </image> | USER_THREE
08:message/user:<SUMMARIZATION_PROMPT>
07:message/user:<SUMMARIZATION_PROMPT>
## Local Post-Compaction History Layout
00:message/user:USER_ONE
01:message/user:USER_TWO
02:message/developer:<PERMISSIONS_INSTRUCTIONS>
03:message/user:<AGENTS_MD>
04:message/user:<ENVIRONMENT_CONTEXT>
05:message/user:<image> | </image> | USER_THREE
06:message/user:<SUMMARY:PRE_TURN_SUMMARY>
00:message/developer:<PERMISSIONS_INSTRUCTIONS>
01:message/user:<AGENTS_MD>
02:message/user:<ENVIRONMENT_CONTEXT>
03:message/user:USER_ONE
04:message/user:USER_TWO
05:message/user:<SUMMARY:PRE_TURN_SUMMARY>
06:message/user:<image> | </image> | USER_THREE

View File

@@ -1,5 +1,6 @@
---
source: core/tests/suite/compact_remote.rs
assertion_line: 1879
expression: "sectioned_request_shapes(&[(\"Remote Compaction Request\", &compact_request),\n(\"Remote Post-Compaction History Layout\", &requests[1]),])"
---
## Remote Compaction Request
@@ -11,8 +12,8 @@ expression: "sectioned_request_shapes(&[(\"Remote Compaction Request\", &compact
## Remote Post-Compaction History Layout
00:message/user:USER_ONE
01:message/user:<SUMMARY:REMOTE_MANUAL_WITH_HISTORY_SUMMARY>
02:message/developer:<PERMISSIONS_INSTRUCTIONS>
03:message/user:<AGENTS_MD>
04:message/user:<ENVIRONMENT_CONTEXT>
01:message/developer:<PERMISSIONS_INSTRUCTIONS>
02:message/user:<AGENTS_MD>
03:message/user:<ENVIRONMENT_CONTEXT>
04:message/user:<SUMMARY:REMOTE_MANUAL_WITH_HISTORY_SUMMARY>
05:message/user:USER_TWO

View File

@@ -1,7 +1,13 @@
---
source: core/tests/suite/compact_remote.rs
expression: "format!(\"## Remote Post-Compaction History Layout\\n{}\",\nrequest_input_shape(&follow_up_request))"
assertion_line: 1793
expression: "sectioned_request_shapes(&[(\"Remote Compaction Request\", &compact_request),\n(\"Remote Post-Compaction History Layout\", &follow_up_request),])"
---
## Remote Compaction Request
00:message/developer:<PERMISSIONS_INSTRUCTIONS>
01:message/user:<AGENTS_MD>
02:message/user:<ENVIRONMENT_CONTEXT>
## Remote Post-Compaction History Layout
00:message/developer:<PERMISSIONS_INSTRUCTIONS>
01:message/user:<AGENTS_MD>

View File

@@ -1,5 +1,6 @@
---
source: core/tests/suite/compact_remote.rs
assertion_line: 1727
expression: "sectioned_request_shapes(&[(\"Remote Compaction Request\", &compact_request),\n(\"Remote Post-Compaction History Layout\", &requests[1]),])"
---
## Remote Compaction Request
@@ -11,8 +12,8 @@ expression: "sectioned_request_shapes(&[(\"Remote Compaction Request\", &compact
05:function_call_output:<TOOL_ERROR_OUTPUT>
## Remote Post-Compaction History Layout
00:message/developer:<PERMISSIONS_INSTRUCTIONS>
01:message/user:<AGENTS_MD>
02:message/user:<ENVIRONMENT_CONTEXT>
03:message/user:USER_ONE
00:message/user:USER_ONE
01:message/developer:<PERMISSIONS_INSTRUCTIONS>
02:message/user:<AGENTS_MD>
03:message/user:<ENVIRONMENT_CONTEXT>
04:message/user:<SUMMARY:REMOTE_MID_TURN_SUMMARY>

View File

@@ -1,5 +1,6 @@
---
source: core/tests/suite/compact_remote.rs
assertion_line: 1646
expression: "sectioned_request_shapes(&[(\"Remote Compaction Request (Including Incoming User Message)\",\n&include_attempt_request),])"
---
## Remote Compaction Request (Including Incoming User Message)
@@ -8,4 +9,3 @@ expression: "sectioned_request_shapes(&[(\"Remote Compaction Request (Including
02:message/user:<ENVIRONMENT_CONTEXT>
03:message/user:USER_ONE
04:message/assistant:REMOTE_FIRST_REPLY
05:message/user:USER_TWO

View File

@@ -1,5 +1,6 @@
---
source: core/tests/suite/compact_remote.rs
assertion_line: 1546
expression: "sectioned_request_shapes(&[(\"Remote Compaction Request\", &compact_request),\n(\"Remote Post-Compaction History Layout\", &requests[2]),])"
---
## Remote Compaction Request
@@ -10,13 +11,13 @@ expression: "sectioned_request_shapes(&[(\"Remote Compaction Request\", &compact
04:message/assistant:REMOTE_FIRST_REPLY
05:message/user:USER_TWO
06:message/assistant:REMOTE_SECOND_REPLY
07:message/user:USER_THREE
## Remote Post-Compaction History Layout
00:message/user:USER_ONE
01:message/user:USER_TWO
02:message/developer:<PERMISSIONS_INSTRUCTIONS>
03:message/user:<AGENTS_MD>
04:message/user:<ENVIRONMENT_CONTEXT>
05:message/user:USER_THREE
02:message/user:USER_THREE
03:message/developer:<PERMISSIONS_INSTRUCTIONS>
04:message/user:<AGENTS_MD>
05:message/user:<ENVIRONMENT_CONTEXT>
06:message/user:<SUMMARY:REMOTE_PRE_TURN_SUMMARY>
07:message/user:USER_THREE