mirror of
https://github.com/openai/codex.git
synced 2026-04-27 08:05:51 +00:00
Defer initial context insertion until the first turn (#14313)
## Summary - defer fresh-session `build_initial_context()` until the first real turn instead of seeding model-visible context during startup - rely on the existing `reference_context_item == None` turn-start path to inject full initial context on that first real turn (and again after baseline resets such as compaction) - add a regression test for `InitialHistory::New` and update affected deterministic tests / snapshots around developer-message layout, collaboration instructions, personality updates, and compact request shapes ## Notes - this PR does not add any special empty-thread `/compact` behavior - most of the snapshot churn is the direct result of moving the initial model-visible context from startup to the first real turn, so first-turn request layouts no longer contain a pre-user startup copy of permissions / environment / other developer-visible context - remote manual `/compact` with no prior user still skips the remote compact request; local first-turn `/compact` still issues a compact request, but that request now reflects the lack of startup-seeded context --------- Co-authored-by: Codex <noreply@openai.com>
This commit is contained in:
committed by
Michael Bolin
parent
c32c445f1c
commit
f5bb338fdb
@@ -2541,7 +2541,6 @@ async fn snapshot_request_shape_remote_mid_turn_compaction_multi_summary_reinjec
|
||||
}
|
||||
|
||||
#[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(()));
|
||||
@@ -2581,19 +2580,15 @@ async fn snapshot_request_shape_remote_manual_compact_without_previous_user_mess
|
||||
|
||||
assert_eq!(
|
||||
compact_mock.requests().len(),
|
||||
1,
|
||||
"current behavior still issues remote compaction for manual /compact without prior user"
|
||||
0,
|
||||
"manual /compact without prior user should not issue a remote compaction request"
|
||||
);
|
||||
let compact_request = compact_mock.single_request();
|
||||
let follow_up_request = responses_mock.single_request();
|
||||
insta::assert_snapshot!(
|
||||
"remote_manual_compact_without_prev_user_shapes",
|
||||
format_labeled_requests_snapshot(
|
||||
"Remote manual /compact with no prior user turn still issues a compact request; follow-up turn carries canonical context and new user message.",
|
||||
&[
|
||||
("Remote Compaction Request", &compact_request),
|
||||
("Remote Post-Compaction History Layout", &follow_up_request),
|
||||
]
|
||||
"Remote manual /compact with no prior user turn skips the remote compact request; the follow-up turn carries canonical context and new user message.",
|
||||
&[("Remote Post-Compaction History Layout", &follow_up_request)]
|
||||
)
|
||||
);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user