Skip to content

feat(reborn): translate projection streams to OpenAI SSE - #4552

Merged
think-in-universe merged 68 commits into
mainfrom
issue-4446-reborn-openai-projection-streams
Jun 9, 2026
Merged

think-in-universe merged 68 commits into
mainfrom
issue-4446-reborn-openai-projection-streams

Conversation

@think-in-universe

Copy link
Copy Markdown
Collaborator

Summary

  • Adds a route-owned OpenAI-compatible SSE translator for projection-backed Chat Completions and Responses streams.
  • Wires stream: true Chat and Responses create requests through ProductWorkflow plus an injected projection streamer while keeping projection cursors internal.
  • Suppresses Reborn keepalive/control-style projection frames and emits sanitized in-stream errors when projection text cannot be translated monotonically.
  • Adds caller-level streaming contract tests for Chat chunks, Responses response.* events, keepalive suppression, cursor redaction, and safe non-monotonic failure.

Linked Issue

Closes #4446

Depends on #4445

Part of #3283

Validation

  • cargo +1.92.0 fmt --all -- --check
  • git diff --check
  • cargo +1.92.0 check -p ironclaw_reborn_openai_compat --features openai-compat-beta - blocked locally by sandbox wrapper before Cargo starts: bwrap: loopback: Failed RTM_NEWADDR: Operation not permitted
  • cargo +1.92.0 test -p ironclaw_reborn_openai_compat --features openai-compat-beta - not run locally because Cargo startup is blocked by the same sandbox wrapper

Security Impact

Yes. This changes authenticated streaming API behavior. The implementation keeps projection cursors/internal refs out of SSE ids and payloads, suppresses Reborn keepalive/control frames, and converts stream failures into sanitized OpenAI-compatible error events.

Database Impact

No schema or migration changes.

Blast Radius

Limited to ironclaw_reborn_openai_compat behind openai-compat-beta, plus streaming route contract tests.

Rollback Plan

Revert this PR to return stream: true Chat and Responses requests to the prior fail-closed behavior.


Review track: C

hanakannzashi and others added 28 commits June 4, 2026 19:48
* feat(reborn): add OpenAI-compatible product refs

* fix(reborn): validate OpenAI-compatible ref mappings

* fix(reborn): address OpenAI product refs review

* Validate durable OpenAI compat ref records

* Format OpenAI compat storage review fixes

---------

Co-authored-by: Robert Yan <mstr.raphael@gmail.com>
@github-actions github-actions Bot added size: XL 500+ changed lines risk: low Changes to docs, tests, or low-risk modules labels Jun 8, 2026
…ns-workflow' into issue-4445-reborn-responses-workflow

# Conflicts:
#	docs/reborn/contracts/openai-compatible-api.md
…flow' into issue-4446-reborn-openai-projection-streams

# Conflicts:
#	crates/ironclaw_reborn_openai_compat/Cargo.toml
#	crates/ironclaw_reborn_openai_compat/src/chat_workflow.rs
#	crates/ironclaw_reborn_openai_compat/src/responses_workflow.rs
@github-actions github-actions Bot added scope: docs Documentation scope: dependencies Dependency updates labels Jun 9, 2026
…ns-workflow' into issue-4445-reborn-responses-workflow

# Conflicts:
#	crates/ironclaw_reborn_openai_compat/src/chat_workflow.rs
…flow' into issue-4446-reborn-openai-projection-streams

# Conflicts:
#	crates/ironclaw_reborn_openai_compat/CLAUDE.md
…eborn-openai-projection-streams

# Conflicts:
#	crates/ironclaw_reborn_openai_compat/src/responses_workflow.rs
…eborn-openai-projection-streams

# Conflicts:
#	crates/ironclaw_reborn_openai_compat/src/responses_workflow.rs
hanakannzashi
hanakannzashi previously approved these changes Jun 9, 2026
Base automatically changed from issue-4445-reborn-responses-workflow to main June 9, 2026 12:02
@think-in-universe
think-in-universe dismissed hanakannzashi’s stale review June 9, 2026 12:02

The base branch was changed.

Resolve conflicts after Responses workflow landed on main.
@think-in-universe
think-in-universe merged commit 4c185e6 into main Jun 9, 2026
66 checks passed
@think-in-universe
think-in-universe deleted the issue-4446-reborn-openai-projection-streams branch June 9, 2026 12:53
theredspoon pushed a commit to theredspoon/ironclaw that referenced this pull request Jun 21, 2026
* feat(reborn): add OpenAI-compatible API contracts

* fix(reborn): tighten OpenAI-compatible response contracts

* fix(reborn): address OpenAI compat contract review

* fix(reborn): satisfy merged main clippy

* feat(reborn): add OpenAI-compatible product refs

* fix(reborn): validate OpenAI-compatible ref mappings

* fix(reborn): address OpenAI product refs review

* feat(reborn): route chat completions through ProductWorkflow

* fix(reborn): simplify chat completion timestamps

* fix(reborn): use explicit ProductWorkflow submit door

* test(reborn): stabilize subagent cancellation propagation

* Validate durable OpenAI compat ref records

* Fix chat completions idempotency validation

* Format OpenAI compat storage review fixes

* feat(reborn): add OpenAI-compatible product refs (nearai#4489)

* feat(reborn): add OpenAI-compatible product refs

* fix(reborn): validate OpenAI-compatible ref mappings

* fix(reborn): address OpenAI product refs review

* Validate durable OpenAI compat ref records

* Format OpenAI compat storage review fixes

---------

Co-authored-by: Robert Yan <mstr.raphael@gmail.com>

* Address chat completions review comments

* Persist chat completion idempotency replay metadata

* Export OpenAI compat ack recording request

* Persist OpenAI compat accepted workflow acks

* feat(reborn): route responses through ProductWorkflow

* fix(reborn): declare compat storage chrono dependency

* fix(reborn): resolve chat completions review feedback

* fix(reborn): resolve chat completions review feedback

* fix(reborn): keep responses cancel within adapter boundary

* feat(reborn): translate projection streams to OpenAI SSE

* fix(reborn): format chat streaming workflow

* fix(reborn): format responses streaming workflow

* fix(reborn): handle terminal projection stream status

* fix(reborn): make OpenAI stream replay terminal-safe

* fix(openai-compat): address chat workflow review comments

* fix(openai-compat): address responses handler review comments

* fix(openai-compat): persist responses replay state

* test(openai-compat): cover responses review paths

* fix(openai-compat): annotate optional responses router state

* test(product-adapters): cover cancel run payload validation

* fix(openai-compat): address chat ref store review

* fix(reborn): resolve chat projections through workflow

* fix(reborn): close responses workflow review gaps

* test(reborn): cover responses wait cancellation

* fix(reborn): update streaming tests for projection reader

* fix(reborn): close OpenAI stream review gaps

* fix(reborn): tighten OpenAI workflow internals

* feat(reborn): wire OpenAI chat completions route

* fix(reborn): wire OpenAI responses composition

* fix(reborn): wire OpenAI projection streams

* fix(reborn): centralize chat body validation

* fix(reborn): centralize responses body validation

* fix(reborn): keep OpenAI compat off turns

---------

Co-authored-by: Coffee <zjchen1234@foxmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

contributor: experienced 6-19 merged PRs risk: low Changes to docs, tests, or low-risk modules scope: dependencies Dependency updates scope: docs Documentation size: XL 500+ changed lines

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Reborn] Translate projection streams to OpenAI-compatible SSE

5 participants