34 Commits

Author SHA1 Message Date
can1357 6b4823181b test: cleaned test suites and documented filtering guidelines
- Remove redundant definedness, null, and type checks across test suites in multiple packages.
- Clean up unused assertions, metadata tests, and obsolete test cases.
- Add good versus bad test filter guidelines and requirements to project documentation.
2026-08-13 08:28:42 +02:00
can1357 10fd42289c feat: introduced external thinking support and private scratchpad think tool
- Added support for external thinking and forced reasoning disablement across AI provider options and request transformers.
- Implemented the private scratchpad think tool along with its renderer, system prompt rules, and schema configuration.
- Updated agent session management and SDK tools to support dynamic runtime activation of the think tool via the externalThinking setting.
- Added comprehensive unit tests covering reasoning fallbacks, tool activation, and rendering behavior.
2026-08-11 20:39:57 +02:00
can1357 f22cb606bf feat(ai): enabled automatic reasoning summaries in codex requests
- Default reasoning.summary to auto in openai-codex requests to ensure summaries are emitted by the backend.
- Gate stream_options reasoning_summary_delivery behind the PI_CODEX_CONCURRENT_SUMMARIES environment variable opt-in.
- Update tests in openai-codex-responses-lite to verify default summary behavior and opt-in concurrent delivery controls.
2026-08-11 15:29:26 +02:00
pickpocket b6818ab603 fix(ai): support Daybreak Responses Lite 2026-08-11 04:43:45 -04:00
can1357 eb56330c9c chore(changelog): normalized unreleased entries after merges 2026-08-05 02:32:48 +02:00
roboomp 99748bbe61 fix(ai): omitted codex optional response defaults
Stopped OpenAI Codex requests from sending reasoning.summary, reasoning.context, and text.verbosity unless explicitly configured, matching the safer native Codex request shape for GPT-5.x models.

Preserved explicit overrides and added regression coverage for transformer and settings-aware stream behavior.

Fixes #4949

(cherry picked from commit 15d86667d6572faf453e74b922eed33dd2d3f3c9)
2026-08-05 02:32:36 +02:00
can1357 ccd3bb9565 chore: reformat 2026-07-30 04:25:32 +02:00
can1357 091f670ea0 style: apply biome formatting to merged changes 2026-07-30 01:28:07 +02:00
metaphorics 4d334592c1 perf(ai): compress Codex SSE request bodies with zstd
(cherry picked from commit 0b830d33eb9dcf6290db0f45cd1cd0995dbd7fe0)
2026-07-29 23:08:48 +02:00
usr-bin-roygbiv c12c282aa5 fix(computer): gate native Responses transport 2026-07-25 00:42:23 +00:00
can1357 aad7ee8fa3 feat(ai): implemented lite response overrides and computer call unrolling for codex
- Updated the OpenAI Codex provider to unroll native computer calls and tool outputs into standard function calls.
- Added support for the `PI_CODEX_RESPONSES_LITE` environment variable override via the request transformer.
- Updated documentation and tests to cover lite response resolution and native computer response unrolling.
2026-07-24 06:10:00 +02:00
can1357 fadcd1a650 fix(ai): made credential-pattern redaction opt-in
- Credential-shaped token redaction now requires explicit opt-in via `configureCredentialRedaction` and is disabled by default, so user-supplied credential-like strings reach providers unmodified unless the host enables redaction.
- Wired the `secrets.enabled` ("Hide Secrets") setting to `configureCredentialRedaction` in the coding-agent so the pattern redaction follows the existing secret-obfuscation toggle.
2026-07-23 16:23:08 +02:00
can1357 9ee329c9d7 chore: update changelogs 2026-07-18 06:40:52 +02:00
can1357 6f0d61f7ca fix(ai): dropped stale signatures after credential redaction 2026-07-17 05:26:18 +02:00
can1357 1f0d8d9750 fix(codex): preserve Lite tool-use constraints 2026-07-17 03:57:41 +02:00
can1357 a0a4f0d56a fix(codex): avoid atomic summary separator 2026-07-14 18:30:27 +02:00
Alexander Kirilin e897b7cee7 fix(codex): preserve sequential reasoning summaries 2026-07-11 16:26:53 -04:00
can1357 337feb297d test: improved test null safety and type assertions
- Added explicit existence checks for objects prior to property access across various test suites.
- Replaced optional chaining with non-null assertions to satisfy TypeScript strictness requirements in test assertions.
2026-07-11 11:31:08 +02:00
can1357 cf2d4c00b3 fix: stale tests + pin codex version 2026-07-11 00:30:06 +02:00
can1357 6d29aad6ab Merge remote-tracking branch 'origin/farm/10fa7941/fix-openai-codex-luna-model' 2026-07-11 00:10:21 +02:00
roboomp 1624d48dd8 fix(codex): used codex version for turns
Resolved the Codex client version for turn requests with the same catalog resolver used by discovery.

Fixes #5105
2026-07-10 18:26:42 +00:00
can1357 c30bdc54ce feat(ai): enforced all_turns reasoning context for responses lite
- Force `reasoning.context` to `all_turns` in OpenAI Codex requests when `responsesLite` is enabled.
- Include `reasoning.encrypted_content` in the `include` header for lite responses.
- Update request transformation logic to ensure these fields are populated even when reasoning effort is not explicitly set.
2026-07-10 20:09:31 +02:00
roboomp 060179729e fix(codex): sent version header with requests
Added Codex version headers to turn requests and model discovery so backend-gated models resolve consistently.

Fixes #5105
2026-07-10 18:08:40 +00:00
can1357 d0a4bc4773 fix(ai): transitioned reasoning summaries to incremental append-only deltas
- Introduced `SequentialCutoffSummaryState` to track reasoning summaries globally across all response items.
- Updated `CodexStreamRuntime` to maintain cumulative summary state instead of per-item snapshots.
- Modified `applyReasoningSummaryDone` and `finalizeReasoningThinking` to emit only append-only text deltas, suppressing replayed content from previous items.
- Added comprehensive test coverage to verify correct incremental thinking output across multiple sequential reasoning items.
2026-07-10 14:07:22 +02:00
can1357 2dafa7ac79 feat: further codex metadata 2026-07-10 11:35:09 +02:00
can1357 29deeef876 feat: enabled codex responses lite for gpt-5.6 models and remote compaction
- Enabled Codex Responses Lite for GPT-5.6 models by integrating model discovery flags and wire contract updates.
- Implemented request transformations for streaming and remote compaction, including header injection and image detail stripping.
- Introduced sequential-cutoff logic and atomic reasoning summary events for concurrent stream processing.
- Added comprehensive test suites to validate remote compaction, image handling, and reasoning summary delivery.
2026-07-10 09:46:27 +02:00
roboomp 5a94effa44 fix(ai): mirrored codex instruction-only input
- Preserved Codex developer instructions while adding a user continuation when the request would otherwise contain only hidden guidance.

- Covered fresh plan execution request shaping and verified existing Codex lite tests.

Fixes #4714
2026-07-06 13:53:53 +00:00
can1357 9ff9c77718 fix(ai): gated reasoning.summary parameter behind gpt-5.4 wire floor
- Added a check to omit the `reasoning.summary` parameter on OpenAI Codex models older than version 5.4.
- Introduced `supportsCodexReasoningSummary` in the catalog package to identify compatible model versions.
- Added comprehensive unit tests validating correct parameter inclusion and suppression across models.
2026-07-01 19:58:13 +02:00
can1357 093660f8b7 fix(ai): restricted reasoning context all_turns option to openai models v5.4 and newer
- Guarded the `all_turns` reasoning context value to OpenAI models version 5.4 or greater.
- Suppressed `reasoning.context` defaults and explicit overrides when `all_turns` is requested on unsupported models to prevent server rejection.
- Introduced `supportsAllTurnsReasoningContext` helper in `@oh-my-pi/pi-catalog/identity` using semver classification.
- Updated request-transformer and response-options logic to conditionalize the request payload shaping.
- Expanded test coverage to verify correct fallback behavior and explicit overrides across gpt-5.x versions.
2026-06-30 06:42:46 +02:00
can1357 2708c1edb8 feat(ai): standardized codex reasoning context to all_turns
- Standardized reasoning context to default to all_turns across all Codex requests to mirror codex-rs behavior.
- Updated request transformer logic to explicitly set reasoning context rather than omitting it when unset.
- Updated API documentation to reflect consistent all_turns default behavior and corrected internal references.
- Adjusted unit tests to verify the enforced all_turns default reasoning context expectation.
2026-06-27 13:40:03 +02:00
roboomp 46c1410c27 style: bun run fix 2026-06-25 01:34:23 +00:00
roboomp 04bfce62c6 fix(ai): disabled codex lite for image prompts
Codex Responses Lite only accepts text input, so GPT image prompts with input_image failed before reaching the full multimodal transport.

The request transformer and Codex headers now fall back to full Responses whenever a request body contains input_image, with regression coverage for the lite header.

Fixes #3421
2026-06-25 01:34:07 +00:00
roboomp 48d64210f9 fix(config): allowed responses image detail compat
Added the missing models.yml schema field for compat.supportsImageDetailOriginal so custom Responses-compatible proxies can opt out of snapcompact's native-resolution image hint.

Covered the CC Switch-style custom provider override and the Codex Responses wire clamp from original to auto.

Fixes #3092
2026-06-20 02:27:57 +00:00
can1357 ad276e931c feat(ai): added Codex Lite options and improved response stream resilience
- Added `responsesLite`, `reasoningContext`, `clientMetadata`, and `onModerationMetadata` options.
- Changed Lite request transformation to default `reasoning.context` to `all_turns`.
- Changed request shaping to strip image `detail` fields and force `parallel_tool_calls` off in Lite mode.
- Fixed streaming behavior by excluding `client_metadata` from websocket append diffs and swallowing moderation metadata errors.
2026-06-12 02:33:45 +02:00