You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Feature request: add a PreCompact hook event #12208
Add a dedicated PreCompact hook event that runs immediately before conversation compaction (manual or auto).
Why this matters
Today, compaction can happen automatically when token usage crosses model_auto_compact_token_limit. There are hook events for AfterAgent and AfterToolUse, but no hook for the compaction boundary itself.
For users who maintain external memory/state, this means there is no deterministic point to capture full pre-compaction context.
Proposed behavior
Add a new hook event, for example:
PreCompact
Triggered when compaction is about to run (both manual and auto).
Suggested payload fields:
session_id
thread_id
turn_id (if applicable)
reason (manual or auto)
total_usage_tokens_before_compaction
auto_compact_limit
triggered_at
cwd
Failure behavior
Please make failure policy explicit and configurable (same style as existing hook outcomes):
continue on error
abort compaction on error
Example use cases
extract important memory facts before summary compaction
persist custom checkpoints to external systems
emit telemetry about compaction quality and timing
run a user-defined “last chance” context snapshot
Additional context
This request is specifically for Codex hooks (not Claude-specific behavior).
If helpful, I can propose a concrete schema and tests aligned with the existing hook event design.
Activity
etraut-openai commentedon Feb 19, 2026
We are tracking this feature request in #2109. Please upvote that issue.
YSAA1 commentedon Apr 2, 2026
补一个更明确的
PreCompact实现建议:compact命令触发前事件名建议:
PreCompact(或BeforeCompact)Payload 建议(最小且实用):
session_idthread_idturn_idreason(auto|manual)cwdmodeltotal_usage_tokens_before_compactionauto_compact_limitprovider/model_family(可选)estimated_cost_tokens(可选)recent_rollup_summary(压缩前最近摘要)on_error: continue|abort(与现有 hook 失败策略一致)YSAA1 commentedon Apr 2, 2026
补充第 4 点:允许 hook 告知 compact 行为。
decision:{"action":"continue"}|{"action":"abort"}(建议默认 continue)。metadata/context_blob用于在紧接着的 summary prompt 中拼接到补充上下文(可选)。command_output注入。如果可采纳,我可以再补一版极简最小 PR 草案(仅文档+schema)供参考。