Skip to content

chore: back-merge main into dev (reconcile post-split trunk hotfixes) - #1234

Closed
jeonghun-jj-lee wants to merge 1 commit into
devfrom
chore/sync-main-into-dev
Closed

jeonghun-jj-lee wants to merge 1 commit into
devfrom
chore/sync-main-into-dev

Conversation

@jeonghun-jj-lee

@jeonghun-jj-lee jeonghun-jj-lee commented Sep 16, 2026

Copy link
Copy Markdown
Contributor

Summary

Back-merge main into dev to reconcile the drift left by the dev/main split (2026-09-15, ADR-0021). Several fixes were merged straight to main after the split — the reverse of the intended devmain Wave flow — so the integration branch never received them. This merge brings them in and re-establishes shared history, so the next devmain Wave is a clean fast-forward.

What this brings into dev (8 commits, all previously main-only)

The Bedrock cluster (#1179/#1207/#1209/#1218/568306f8) matters most: dev is the default/integration branch, so without this, daily-driver builds off dev still hit the session-wedge crash.

Conflict resolution (3 files — all mechanical)

File Resolution Why
…/provider/transform.ts took main's version dev held a stale #1209-era snapshot dragged in incidentally by #1220; main is strictly ahead (#1218 + 568306f8). Verified byte-identical to origin/main post-resolve.
…/test/provider/transform.test.ts took main's version same stale-snapshot story. Byte-identical to main.
packages/app-bundle/manifest.json regenerated via refresh_manifest.mjs Not a blind take-main: that would have dropped the 8 #1203 overlay registrations dev added in 22c45c16. Regenerated from the merged overlay tree (826 files = dev's #1203 files + main's transform), then verified with drift_gate.mjs.

Verification (local, before request)

⚠️ Merge with a real merge commit — do NOT squash

This is an intentional merge commit (two parents: dev tip + main tip). Squashing would collapse main's history into a new SHA, re-orphaning it from dev and re-breaking the next Wave — the exact drift this PR fixes. Use "Create a merge commit" (or fast-forward), not squash.

Summary by CodeRabbit

  • Bug Fixes
    • Improved compatibility with Amazon Bedrock by preserving supported reasoning content and converting unsupported reasoning text into usable text content.
    • Prevented empty messages from being sent to providers, reducing malformed or silently dropped requests.
    • Removed empty reasoning-only messages when they contain no meaningful content.
  • Reliability
    • Added coverage for stream gaps, session stream resilience, and prompt submission scenarios to help ensure more reliable message streaming.

The dev/main split (2026-09-15) left main carrying fixes that never reached
the integration branch, because they were merged straight to main after the
split. This back-merge brings them into dev so the branches share history and
the next dev->main Wave is a clean fast-forward.

Brought in from main:
  #1209 Bedrock cachePoint-after-reasoning session wedge (the Diraq-ESR crash)
  #1218 drop empty-content messages before API dispatch
  568306f convert unsignable Bedrock reasoning to text
  #1207 omit-agent promptAsync continues current agent
  #1179 stop assistant prefill for max-steps prompt
  #1158 Slack MCP via slack-mcp-server + OAuth PKCE
  #1174 lineage repair + diff_version propagation
  #1200 harden adoption gate + rebuild status delivery (content already in dev)

Conflict resolution (3 files, all mechanical):
  transform.ts, transform.test.ts — taken from main. dev held stale #1209-era
    snapshots dragged in incidentally by #1220; main is strictly ahead
    (#1218 + 568306f). Verified byte-identical to origin/main post-resolve.
  manifest.json — regenerated from the merged overlay via refresh_manifest.mjs
    (826 files = dev's #1203 registrations + main's transform). Verified with
    drift_gate.mjs (PASS). Not a blind take-theirs: that would have dropped the
    #1203 overlay registrations dev added in 22c45c1.

Merge commit is intentional — do NOT squash (squashing re-orphans main's
history from dev and re-breaks the next Wave).
@coderabbitai

coderabbitai Bot commented Sep 16, 2026

Copy link
Copy Markdown

Review Change StackReview Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Advanced

Run ID: 021f9a66-8546-4663-99a9-82843bdabcb8

📥 Commits

Reviewing files that changed from the base of the PR and between d509947 and e9ef6c7.

📒 Files selected for processing (3)
  • packages/app-bundle/manifest.json
  • packages/app-bundle/overlay/packages/opencode/src/provider/transform.ts
  • packages/app-bundle/overlay/packages/opencode/test/provider/transform.test.ts

Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review.


📝 Walkthrough

Walkthrough

The provider transform now preserves unsigned Bedrock reasoning text as text, removes empty message content, and adds tests for these cases. The overlay manifest records the changed provider files and newly included app files.

Changes

Provider message normalization

Layer / File(s) Summary
Transform normalization and tests
packages/app-bundle/overlay/packages/opencode/src/provider/transform.ts, packages/app-bundle/overlay/packages/opencode/test/provider/transform.test.ts
Bedrock reasoning without a signature becomes text when it has content. Empty reasoning and empty content arrays are removed. Tests cover preserved reasoning, converted text, removed messages, and retained non-empty content.

Overlay manifest regeneration

Layer / File(s) Summary
Overlay manifest regeneration
packages/app-bundle/manifest.json
The manifest records eight app files, updated provider hashes, new classifications, and updated extraction and overlay totals.

Priority: ⬇️ Low

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Other

Suggested reviewers: jacktrnr

🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (2 warnings)

Check name Status Explanation Resolution
Description check ⚠️ Warning The description gives detailed context, lists the imported commits, documents conflict resolution, explains the merge strategy, and records verification results. It does not include the required Relat… Add a Related Issue section with a valid GitHub issue reference, such as Closes #1234``. Add the applicable Type of Change checkbox selection. Retain the existing verification and merge-strategy details, and add manual testing notes if manu…
Docstring Coverage ⚠️ Warning Docstring coverage is 50.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 2 functions across 2 files. (1 skipped: 1… Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly identifies the main change: back-merging main into dev to reconcile post-split trunk fixes.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Full details: Description check

Explanation

The description gives detailed context, lists the imported commits, documents conflict resolution, explains the merge strategy, and records verification results. It does not include the required Related Issue link or the Type of Change selection from the repository template.

Resolution

Add a Related Issue section with a valid GitHub issue reference, such as Closes #1234``. Add the applicable Type of Change checkbox selection. Retain the existing verification and merge-strategy details, and add manual testing notes if manual testing was performed or state that it was not applicable.

Full details: Docstring Coverage

Explanation

Docstring coverage is 50.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 2 functions across 2 files. (1 skipped: 1 unsupported.)

  • Fix all pre-merge checks with AI
✨ Finishing Touches 💡 2
📝 Generate docstrings 💡
  • Create stacked PR
  • Commit on current branch
⚔️ Resolve merge conflicts 💡
  • Resolve merge conflict in branch chore/sync-main-into-dev
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/sync-main-into-dev

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@jeonghun-jj-lee

Copy link
Copy Markdown
Contributor Author

Superseded by Aaron's parallel wave-2 back-merge (dfe3fbe1 + d5099476), which landed the same main→dev reconciliation on dev directly while this was in flight. origin/main is already a full ancestor of origin/dev, so this PR is redundant — and forcing it would regress the amico.svg symlink→content materialization Aaron's merge fixed for CI's drift gate.

⚠️ One carry-forward: the wave-2 merge resolution dropped the #1218 empty-content final guard (msgs.filter(... content.length > 0)) from transform.ts — present on main and in this branch's resolution, absent on dev. Flagged separately for a surgical restore.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant