Opt-in via compression.codex_responses_native (default: false). When enabled,
gpt-5.6-family models on the direct OpenAI API (api.openai.com) or a ChatGPT
Codex subscription send context_management=[{type: compaction,
compact_threshold: N}] on Responses requests. OpenAI compacts server-side and
returns an encrypted compaction output item; Hermes captures it into the
existing codex_reasoning_items sidecar and replays it on later turns in place
of the pruned history — inheriting persistence, session replay, the
cross-issuer guard, and the encrypted-replay kill switch with zero new state.
Scope is deliberately hard-gated (agent/native_compaction.py, re-checked per
request): gpt-5.6 family only — gpt-5.1/5.2 fail server-side on the field
(HTTP 500 / stream stall, no structured rejection; live-verified) — and
direct OpenAI/Codex routes only; xAI, GitHub/Copilot, OpenRouter, relays,
and local servers never see the field.
Hermes' local compression stays armed as the fallback owner: the native
threshold is clamped ~8K tokens below the local trigger so the server
compacts first, and a structured provider rejection of context_management
disables native compaction for the session and retries without it
(one-shot guard in TurnRetryState).
Live-verified E2E on api.openai.com/gpt-5.6: server compaction fired at a
4K threshold, checkpoints captured and replayed, recall preserved across
3 turns; gpt-5.1 with the flag enabled stays clean (field never sent).
Direction credit: PR #76950 by @laryhorb explored native Responses
compaction; this is a minimal reimplementation on current main.
|
||
|---|---|---|
| .. | ||
| lsp | ||
| monitoring | ||
| pet | ||
| proxy_sources | ||
| secret_sources | ||
| transports | ||
| verify | ||
| __init__.py | ||
| account_usage.py | ||
| agent_init.py | ||
| agent_runtime_helpers.py | ||
| anthropic_adapter.py | ||
| async_utils.py | ||
| aux_accounting.py | ||
| auxiliary_client.py | ||
| azure_identity_adapter.py | ||
| backend_identity.py | ||
| background_review.py | ||
| battery.py | ||
| bedrock_adapter.py | ||
| billing_links.py | ||
| billing_usage.py | ||
| billing_view.py | ||
| bounded_response.py | ||
| browser_provider.py | ||
| browser_registry.py | ||
| chat_completion_helpers.py | ||
| codex_responses_adapter.py | ||
| codex_runtime.py | ||
| coding_context.py | ||
| context_breakdown.py | ||
| context_compressor.py | ||
| context_engine.py | ||
| context_references.py | ||
| conversation_compression.py | ||
| conversation_loop.py | ||
| copilot_acp_client.py | ||
| credential_persistence.py | ||
| credential_pool.py | ||
| credential_sources.py | ||
| credits_tracker.py | ||
| curator.py | ||
| curator_backup.py | ||
| delegation_context.py | ||
| display.py | ||
| error_classifier.py | ||
| errors.py | ||
| estop.py | ||
| file_safety.py | ||
| gemini_native_adapter.py | ||
| gemini_schema.py | ||
| i18n.py | ||
| image_gen_provider.py | ||
| image_gen_registry.py | ||
| image_routing.py | ||
| insights.py | ||
| interrupt_compat.py | ||
| iteration_budget.py | ||
| jiter_preload.py | ||
| kanban_stop.py | ||
| learn_prompt.py | ||
| learning_graph.py | ||
| learning_graph_render.py | ||
| learning_mutations.py | ||
| lmstudio_reasoning.py | ||
| manual_compression_feedback.py | ||
| markdown_tables.py | ||
| memory_manager.py | ||
| memory_provider.py | ||
| message_content.py | ||
| message_sanitization.py | ||
| moa_loop.py | ||
| moa_trace.py | ||
| model_metadata.py | ||
| models_dev.py | ||
| moonshot_schema.py | ||
| native_compaction.py | ||
| nous_rate_guard.py | ||
| onboarding.py | ||
| oneshot.py | ||
| outbound_webhooks.py | ||
| plugin_llm.py | ||
| portal_tags.py | ||
| process_bootstrap.py | ||
| prompt_builder.py | ||
| prompt_caching.py | ||
| rate_limit_tracker.py | ||
| reactions.py | ||
| reasoning_summaries.py | ||
| reasoning_timeouts.py | ||
| redact.py | ||
| relay_llm.py | ||
| relay_runtime.py | ||
| relay_tools.py | ||
| replay_cleanup.py | ||
| retry_utils.py | ||
| runtime_cwd.py | ||
| secret_scope.py | ||
| session_activity.py | ||
| shell_hooks.py | ||
| skill_bundles.py | ||
| skill_commands.py | ||
| skill_preprocessing.py | ||
| skill_utils.py | ||
| ssl_guard.py | ||
| ssl_verify.py | ||
| stream_diag.py | ||
| stream_single_writer.py | ||
| subagent_lifecycle.py | ||
| subdirectory_hints.py | ||
| subscription_view.py | ||
| system_prompt.py | ||
| think_scrubber.py | ||
| thinking_timeout_guidance.py | ||
| thread_scoped_output.py | ||
| title_generator.py | ||
| tool_dispatch_helpers.py | ||
| tool_executor.py | ||
| tool_guardrails.py | ||
| tool_result_classification.py | ||
| trace_upload.py | ||
| trajectory.py | ||
| transcription_provider.py | ||
| transcription_registry.py | ||
| tts_provider.py | ||
| tts_registry.py | ||
| turn_context.py | ||
| turn_finalizer.py | ||
| turn_retry_state.py | ||
| turn_summary.py | ||
| usage_pricing.py | ||
| verification_evidence.py | ||
| verification_stop.py | ||
| verify_hooks.py | ||
| vertex_adapter.py | ||
| video_gen_provider.py | ||
| video_gen_registry.py | ||
| web_search_provider.py | ||
| web_search_registry.py | ||