big fixes in thinking branch - #13

Merged
Dibyendu-dev merged 1 commit into
mainfrom
thinking
Jun 4, 2026
Merged

big fixes in thinking branch#13
Dibyendu-dev merged 1 commit into
mainfrom
thinking

Conversation

@Dibyendu-dev

@Dibyendu-devDibyendu-dev commented Jun 4, 2026

Copy link
Copy Markdown
Owner

Summary by CodeRabbit

Release Notes

  • Bug Fixes

    • Fixed error handling in the resume endpoint to properly return error responses instead of failing silently.
  • Refactor

    • Improved tool result output handling for better consistency and reliability.
    • Enhanced type definitions for improved code stability.

@Dibyendu-dev
Dibyendu-dev merged commit 0554271 into mainJun 4, 2026
1 check was pending
@coderabbitai

coderabbitaiBot commented Jun 4, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 1da2d88a-5764-4061-96a2-fd4963b9e657

📥 Commits

Reviewing files that changed from the base of the PR and between c6c26ef and 9f7cdc5.

📒 Files selected for processing (4)
  • packages/cli/src/components/messages/bot-message.tsx
  • packages/cli/src/hooks/useChat.ts
  • packages/server/src/lib/model.ts
  • packages/server/src/routes/chat.ts

📝 Walkthrough

Walkthrough

Tool call handling improvements across client and server: the ClientToolCallPart.status type is now optional; server tool-result streaming applies null-safe JSON serialization and uses the tool-result SSE event type; message rendering gains explicit type annotations and label spacing; and the resume endpoint error handling now returns proper JSON responses.

Changes

Tool Call Type Contract and Server Streaming

Layer / File(s)Summary
Tool call status optionality
packages/cli/src/hooks/useChat.ts
ClientToolCallPart.status is made optional (status?: "calling" | "done"), allowing tool calls to exist without requiring an explicit status field.
Tool-result SSE streaming and event handling
packages/server/src/routes/chat.ts
Tool-result output serialization uses null-safe JSON.stringify(...) ?? "null" for non-string outputs, and SSE events emit the tool-result event type.

Client Message Rendering

Layer / File(s)Summary
Message grouping and thinking label
packages/cli/src/components/messages/bot-message.tsx
groupConsecutiveParts gains explicit PartGroup[] return type annotation; the reasoning label text adds a trailing space ("Thinking: " instead of "Thinking:").

Error Handling and Code Cleanup

Layer / File(s)Summary
Resume endpoint error response
packages/server/src/routes/chat.ts
/:sessionId/resume catch block returns a JSON error response with HTTP 500 status on failure instead of leaving the response unhandled.
Code cleanup
packages/server/src/lib/model.ts
Unused zod import (includes) is removed.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

  • Dibyendu-dev/daycode#12: Tweaks the same thinking/tool rendering pipeline with overlapping changes to ClientToolCallPart.status optionality, the "Thinking: " label in bot-message.tsx, and chat.ts tool-result/SSE event handling.
  • Dibyendu-dev/daycode#8: Modifies packages/server/src/routes/chat.ts chat streaming and tool-result SSE event handling logic that directly overlaps with this PR's server-side changes.
  • Dibyendu-dev/daycode#10: Modifies the same /:sessionId/resume error/abort handling paths in packages/server/src/routes/chat.ts.

Poem

🐰 Types are tighter, events now named,
Tool results stringify without shame,
"Thinking: " labels spaced just right,
Resume endpoints catch the light—
Small tweaks make the pipeline bright! ✨

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch thinking

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 and usage tips.

Sign up for freeto 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

@Dibyendu-dev
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

big fixes in thinking branch - #13

Merged
Dibyendu-dev merged 1 commit into
mainfrom
thinking
Jun 4, 2026
Merged

big fixes in thinking branch#13
Dibyendu-dev merged 1 commit into
mainfrom
thinking

Conversation

@Dibyendu-dev

@Dibyendu-devDibyendu-dev commented Jun 4, 2026

Copy link
Copy Markdown
Owner

Summary by CodeRabbit

Release Notes

  • Bug Fixes

    • Fixed error handling in the resume endpoint to properly return error responses instead of failing silently.
  • Refactor

    • Improved tool result output handling for better consistency and reliability.
    • Enhanced type definitions for improved code stability.

@Dibyendu-dev
Dibyendu-dev merged commit 0554271 into mainJun 4, 2026
1 check was pending
@coderabbitai

coderabbitaiBot commented Jun 4, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 1da2d88a-5764-4061-96a2-fd4963b9e657

📥 Commits

Reviewing files that changed from the base of the PR and between c6c26ef and 9f7cdc5.

📒 Files selected for processing (4)
  • packages/cli/src/components/messages/bot-message.tsx
  • packages/cli/src/hooks/useChat.ts
  • packages/server/src/lib/model.ts
  • packages/server/src/routes/chat.ts

📝 Walkthrough

Walkthrough

Tool call handling improvements across client and server: the ClientToolCallPart.status type is now optional; server tool-result streaming applies null-safe JSON serialization and uses the tool-result SSE event type; message rendering gains explicit type annotations and label spacing; and the resume endpoint error handling now returns proper JSON responses.

Changes

Tool Call Type Contract and Server Streaming

Layer / File(s)Summary
Tool call status optionality
packages/cli/src/hooks/useChat.ts
ClientToolCallPart.status is made optional (status?: "calling" | "done"), allowing tool calls to exist without requiring an explicit status field.
Tool-result SSE streaming and event handling
packages/server/src/routes/chat.ts
Tool-result output serialization uses null-safe JSON.stringify(...) ?? "null" for non-string outputs, and SSE events emit the tool-result event type.

Client Message Rendering

Layer / File(s)Summary
Message grouping and thinking label
packages/cli/src/components/messages/bot-message.tsx
groupConsecutiveParts gains explicit PartGroup[] return type annotation; the reasoning label text adds a trailing space ("Thinking: " instead of "Thinking:").

Error Handling and Code Cleanup

Layer / File(s)Summary
Resume endpoint error response
packages/server/src/routes/chat.ts
/:sessionId/resume catch block returns a JSON error response with HTTP 500 status on failure instead of leaving the response unhandled.
Code cleanup
packages/server/src/lib/model.ts
Unused zod import (includes) is removed.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

  • Dibyendu-dev/daycode#12: Tweaks the same thinking/tool rendering pipeline with overlapping changes to ClientToolCallPart.status optionality, the "Thinking: " label in bot-message.tsx, and chat.ts tool-result/SSE event handling.
  • Dibyendu-dev/daycode#8: Modifies packages/server/src/routes/chat.ts chat streaming and tool-result SSE event handling logic that directly overlaps with this PR's server-side changes.
  • Dibyendu-dev/daycode#10: Modifies the same /:sessionId/resume error/abort handling paths in packages/server/src/routes/chat.ts.

Poem

🐰 Types are tighter, events now named,
Tool results stringify without shame,
"Thinking: " labels spaced just right,
Resume endpoints catch the light—
Small tweaks make the pipeline bright! ✨

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch thinking

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 and usage tips.

Sign up for freeto 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

@Dibyendu-dev
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

big fixes in thinking branch - #13

Merged
Dibyendu-dev merged 1 commit into
mainfrom
thinking
Jun 4, 2026
Merged

big fixes in thinking branch#13
Dibyendu-dev merged 1 commit into
mainfrom
thinking

Conversation

@Dibyendu-dev

@Dibyendu-devDibyendu-dev commented Jun 4, 2026

Copy link
Copy Markdown
Owner

Summary by CodeRabbit

Release Notes

  • Bug Fixes

    • Fixed error handling in the resume endpoint to properly return error responses instead of failing silently.
  • Refactor

    • Improved tool result output handling for better consistency and reliability.
    • Enhanced type definitions for improved code stability.

@Dibyendu-dev
Dibyendu-dev merged commit 0554271 into mainJun 4, 2026
1 check was pending
@coderabbitai

coderabbitaiBot commented Jun 4, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 1da2d88a-5764-4061-96a2-fd4963b9e657

📥 Commits

Reviewing files that changed from the base of the PR and between c6c26ef and 9f7cdc5.

📒 Files selected for processing (4)
  • packages/cli/src/components/messages/bot-message.tsx
  • packages/cli/src/hooks/useChat.ts
  • packages/server/src/lib/model.ts
  • packages/server/src/routes/chat.ts

📝 Walkthrough

Walkthrough

Tool call handling improvements across client and server: the ClientToolCallPart.status type is now optional; server tool-result streaming applies null-safe JSON serialization and uses the tool-result SSE event type; message rendering gains explicit type annotations and label spacing; and the resume endpoint error handling now returns proper JSON responses.

Changes

Tool Call Type Contract and Server Streaming

Layer / File(s)Summary
Tool call status optionality
packages/cli/src/hooks/useChat.ts
ClientToolCallPart.status is made optional (status?: "calling" | "done"), allowing tool calls to exist without requiring an explicit status field.
Tool-result SSE streaming and event handling
packages/server/src/routes/chat.ts
Tool-result output serialization uses null-safe JSON.stringify(...) ?? "null" for non-string outputs, and SSE events emit the tool-result event type.

Client Message Rendering

Layer / File(s)Summary
Message grouping and thinking label
packages/cli/src/components/messages/bot-message.tsx
groupConsecutiveParts gains explicit PartGroup[] return type annotation; the reasoning label text adds a trailing space ("Thinking: " instead of "Thinking:").

Error Handling and Code Cleanup

Layer / File(s)Summary
Resume endpoint error response
packages/server/src/routes/chat.ts
/:sessionId/resume catch block returns a JSON error response with HTTP 500 status on failure instead of leaving the response unhandled.
Code cleanup
packages/server/src/lib/model.ts
Unused zod import (includes) is removed.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

  • Dibyendu-dev/daycode#12: Tweaks the same thinking/tool rendering pipeline with overlapping changes to ClientToolCallPart.status optionality, the "Thinking: " label in bot-message.tsx, and chat.ts tool-result/SSE event handling.
  • Dibyendu-dev/daycode#8: Modifies packages/server/src/routes/chat.ts chat streaming and tool-result SSE event handling logic that directly overlaps with this PR's server-side changes.
  • Dibyendu-dev/daycode#10: Modifies the same /:sessionId/resume error/abort handling paths in packages/server/src/routes/chat.ts.

Poem

🐰 Types are tighter, events now named,
Tool results stringify without shame,
"Thinking: " labels spaced just right,
Resume endpoints catch the light—
Small tweaks make the pipeline bright! ✨

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch thinking

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 and usage tips.

Sign up for freeto 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

@Dibyendu-dev
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

big fixes in thinking branch - #13

Merged
Dibyendu-dev merged 1 commit into
mainfrom
thinking
Jun 4, 2026
Merged

big fixes in thinking branch#13
Dibyendu-dev merged 1 commit into
mainfrom
thinking

Conversation

@Dibyendu-dev

@Dibyendu-devDibyendu-dev commented Jun 4, 2026

Copy link
Copy Markdown
Owner

Summary by CodeRabbit

Release Notes

  • Bug Fixes

    • Fixed error handling in the resume endpoint to properly return error responses instead of failing silently.
  • Refactor

    • Improved tool result output handling for better consistency and reliability.
    • Enhanced type definitions for improved code stability.

@Dibyendu-dev
Dibyendu-dev merged commit 0554271 into mainJun 4, 2026
1 check was pending
@coderabbitai

coderabbitaiBot commented Jun 4, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 1da2d88a-5764-4061-96a2-fd4963b9e657

📥 Commits

Reviewing files that changed from the base of the PR and between c6c26ef and 9f7cdc5.

📒 Files selected for processing (4)
  • packages/cli/src/components/messages/bot-message.tsx
  • packages/cli/src/hooks/useChat.ts
  • packages/server/src/lib/model.ts
  • packages/server/src/routes/chat.ts

📝 Walkthrough

Walkthrough

Tool call handling improvements across client and server: the ClientToolCallPart.status type is now optional; server tool-result streaming applies null-safe JSON serialization and uses the tool-result SSE event type; message rendering gains explicit type annotations and label spacing; and the resume endpoint error handling now returns proper JSON responses.

Changes

Tool Call Type Contract and Server Streaming

Layer / File(s)Summary
Tool call status optionality
packages/cli/src/hooks/useChat.ts
ClientToolCallPart.status is made optional (status?: "calling" | "done"), allowing tool calls to exist without requiring an explicit status field.
Tool-result SSE streaming and event handling
packages/server/src/routes/chat.ts
Tool-result output serialization uses null-safe JSON.stringify(...) ?? "null" for non-string outputs, and SSE events emit the tool-result event type.

Client Message Rendering

Layer / File(s)Summary
Message grouping and thinking label
packages/cli/src/components/messages/bot-message.tsx
groupConsecutiveParts gains explicit PartGroup[] return type annotation; the reasoning label text adds a trailing space ("Thinking: " instead of "Thinking:").

Error Handling and Code Cleanup

Layer / File(s)Summary
Resume endpoint error response
packages/server/src/routes/chat.ts
/:sessionId/resume catch block returns a JSON error response with HTTP 500 status on failure instead of leaving the response unhandled.
Code cleanup
packages/server/src/lib/model.ts
Unused zod import (includes) is removed.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

  • Dibyendu-dev/daycode#12: Tweaks the same thinking/tool rendering pipeline with overlapping changes to ClientToolCallPart.status optionality, the "Thinking: " label in bot-message.tsx, and chat.ts tool-result/SSE event handling.
  • Dibyendu-dev/daycode#8: Modifies packages/server/src/routes/chat.ts chat streaming and tool-result SSE event handling logic that directly overlaps with this PR's server-side changes.
  • Dibyendu-dev/daycode#10: Modifies the same /:sessionId/resume error/abort handling paths in packages/server/src/routes/chat.ts.

Poem

🐰 Types are tighter, events now named,
Tool results stringify without shame,
"Thinking: " labels spaced just right,
Resume endpoints catch the light—
Small tweaks make the pipeline bright! ✨

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch thinking

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 and usage tips.

Sign up for freeto 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

@Dibyendu-dev
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

big fixes in thinking branch - #13

Merged
Dibyendu-dev merged 1 commit into
mainfrom
thinking
Jun 4, 2026
Merged

big fixes in thinking branch#13
Dibyendu-dev merged 1 commit into
mainfrom
thinking

Conversation

@Dibyendu-dev

@Dibyendu-devDibyendu-dev commented Jun 4, 2026

Copy link
Copy Markdown
Owner

Summary by CodeRabbit

Release Notes

  • Bug Fixes

    • Fixed error handling in the resume endpoint to properly return error responses instead of failing silently.
  • Refactor

    • Improved tool result output handling for better consistency and reliability.
    • Enhanced type definitions for improved code stability.

@Dibyendu-dev
Dibyendu-dev merged commit 0554271 into mainJun 4, 2026
1 check was pending
@coderabbitai

coderabbitaiBot commented Jun 4, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 1da2d88a-5764-4061-96a2-fd4963b9e657

📥 Commits

Reviewing files that changed from the base of the PR and between c6c26ef and 9f7cdc5.

📒 Files selected for processing (4)
  • packages/cli/src/components/messages/bot-message.tsx
  • packages/cli/src/hooks/useChat.ts
  • packages/server/src/lib/model.ts
  • packages/server/src/routes/chat.ts

📝 Walkthrough

Walkthrough

Tool call handling improvements across client and server: the ClientToolCallPart.status type is now optional; server tool-result streaming applies null-safe JSON serialization and uses the tool-result SSE event type; message rendering gains explicit type annotations and label spacing; and the resume endpoint error handling now returns proper JSON responses.

Changes

Tool Call Type Contract and Server Streaming

Layer / File(s)Summary
Tool call status optionality
packages/cli/src/hooks/useChat.ts
ClientToolCallPart.status is made optional (status?: "calling" | "done"), allowing tool calls to exist without requiring an explicit status field.
Tool-result SSE streaming and event handling
packages/server/src/routes/chat.ts
Tool-result output serialization uses null-safe JSON.stringify(...) ?? "null" for non-string outputs, and SSE events emit the tool-result event type.

Client Message Rendering

Layer / File(s)Summary
Message grouping and thinking label
packages/cli/src/components/messages/bot-message.tsx
groupConsecutiveParts gains explicit PartGroup[] return type annotation; the reasoning label text adds a trailing space ("Thinking: " instead of "Thinking:").

Error Handling and Code Cleanup

Layer / File(s)Summary
Resume endpoint error response
packages/server/src/routes/chat.ts
/:sessionId/resume catch block returns a JSON error response with HTTP 500 status on failure instead of leaving the response unhandled.
Code cleanup
packages/server/src/lib/model.ts
Unused zod import (includes) is removed.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

  • Dibyendu-dev/daycode#12: Tweaks the same thinking/tool rendering pipeline with overlapping changes to ClientToolCallPart.status optionality, the "Thinking: " label in bot-message.tsx, and chat.ts tool-result/SSE event handling.
  • Dibyendu-dev/daycode#8: Modifies packages/server/src/routes/chat.ts chat streaming and tool-result SSE event handling logic that directly overlaps with this PR's server-side changes.
  • Dibyendu-dev/daycode#10: Modifies the same /:sessionId/resume error/abort handling paths in packages/server/src/routes/chat.ts.

Poem

🐰 Types are tighter, events now named,
Tool results stringify without shame,
"Thinking: " labels spaced just right,
Resume endpoints catch the light—
Small tweaks make the pipeline bright! ✨

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch thinking

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 and usage tips.

Sign up for freeto 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

@Dibyendu-dev
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

big fixes in thinking branch - #13

Merged
Dibyendu-dev merged 1 commit into
mainfrom
thinking
Jun 4, 2026
Merged

big fixes in thinking branch#13
Dibyendu-dev merged 1 commit into
mainfrom
thinking

Conversation

@Dibyendu-dev

@Dibyendu-devDibyendu-dev commented Jun 4, 2026

Copy link
Copy Markdown
Owner

Summary by CodeRabbit

Release Notes

  • Bug Fixes

    • Fixed error handling in the resume endpoint to properly return error responses instead of failing silently.
  • Refactor

    • Improved tool result output handling for better consistency and reliability.
    • Enhanced type definitions for improved code stability.

@Dibyendu-dev
Dibyendu-dev merged commit 0554271 into mainJun 4, 2026
1 check was pending
@coderabbitai

coderabbitaiBot commented Jun 4, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 1da2d88a-5764-4061-96a2-fd4963b9e657

📥 Commits

Reviewing files that changed from the base of the PR and between c6c26ef and 9f7cdc5.

📒 Files selected for processing (4)
  • packages/cli/src/components/messages/bot-message.tsx
  • packages/cli/src/hooks/useChat.ts
  • packages/server/src/lib/model.ts
  • packages/server/src/routes/chat.ts

📝 Walkthrough

Walkthrough

Tool call handling improvements across client and server: the ClientToolCallPart.status type is now optional; server tool-result streaming applies null-safe JSON serialization and uses the tool-result SSE event type; message rendering gains explicit type annotations and label spacing; and the resume endpoint error handling now returns proper JSON responses.

Changes

Tool Call Type Contract and Server Streaming

Layer / File(s)Summary
Tool call status optionality
packages/cli/src/hooks/useChat.ts
ClientToolCallPart.status is made optional (status?: "calling" | "done"), allowing tool calls to exist without requiring an explicit status field.
Tool-result SSE streaming and event handling
packages/server/src/routes/chat.ts
Tool-result output serialization uses null-safe JSON.stringify(...) ?? "null" for non-string outputs, and SSE events emit the tool-result event type.

Client Message Rendering

Layer / File(s)Summary
Message grouping and thinking label
packages/cli/src/components/messages/bot-message.tsx
groupConsecutiveParts gains explicit PartGroup[] return type annotation; the reasoning label text adds a trailing space ("Thinking: " instead of "Thinking:").

Error Handling and Code Cleanup

Layer / File(s)Summary
Resume endpoint error response
packages/server/src/routes/chat.ts
/:sessionId/resume catch block returns a JSON error response with HTTP 500 status on failure instead of leaving the response unhandled.
Code cleanup
packages/server/src/lib/model.ts
Unused zod import (includes) is removed.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

  • Dibyendu-dev/daycode#12: Tweaks the same thinking/tool rendering pipeline with overlapping changes to ClientToolCallPart.status optionality, the "Thinking: " label in bot-message.tsx, and chat.ts tool-result/SSE event handling.
  • Dibyendu-dev/daycode#8: Modifies packages/server/src/routes/chat.ts chat streaming and tool-result SSE event handling logic that directly overlaps with this PR's server-side changes.
  • Dibyendu-dev/daycode#10: Modifies the same /:sessionId/resume error/abort handling paths in packages/server/src/routes/chat.ts.

Poem

🐰 Types are tighter, events now named,
Tool results stringify without shame,
"Thinking: " labels spaced just right,
Resume endpoints catch the light—
Small tweaks make the pipeline bright! ✨

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch thinking

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 and usage tips.

Sign up for freeto 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

@Dibyendu-dev
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

big fixes in thinking branch - #13

Merged
Dibyendu-dev merged 1 commit into
mainfrom
thinking
Jun 4, 2026
Merged

big fixes in thinking branch#13
Dibyendu-dev merged 1 commit into
mainfrom
thinking

Conversation

@Dibyendu-dev

@Dibyendu-devDibyendu-dev commented Jun 4, 2026

Copy link
Copy Markdown
Owner

Summary by CodeRabbit

Release Notes

  • Bug Fixes

    • Fixed error handling in the resume endpoint to properly return error responses instead of failing silently.
  • Refactor

    • Improved tool result output handling for better consistency and reliability.
    • Enhanced type definitions for improved code stability.

@Dibyendu-dev
Dibyendu-dev merged commit 0554271 into mainJun 4, 2026
1 check was pending
@coderabbitai

coderabbitaiBot commented Jun 4, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 1da2d88a-5764-4061-96a2-fd4963b9e657

📥 Commits

Reviewing files that changed from the base of the PR and between c6c26ef and 9f7cdc5.

📒 Files selected for processing (4)
  • packages/cli/src/components/messages/bot-message.tsx
  • packages/cli/src/hooks/useChat.ts
  • packages/server/src/lib/model.ts
  • packages/server/src/routes/chat.ts

📝 Walkthrough

Walkthrough

Tool call handling improvements across client and server: the ClientToolCallPart.status type is now optional; server tool-result streaming applies null-safe JSON serialization and uses the tool-result SSE event type; message rendering gains explicit type annotations and label spacing; and the resume endpoint error handling now returns proper JSON responses.

Changes

Tool Call Type Contract and Server Streaming

Layer / File(s)Summary
Tool call status optionality
packages/cli/src/hooks/useChat.ts
ClientToolCallPart.status is made optional (status?: "calling" | "done"), allowing tool calls to exist without requiring an explicit status field.
Tool-result SSE streaming and event handling
packages/server/src/routes/chat.ts
Tool-result output serialization uses null-safe JSON.stringify(...) ?? "null" for non-string outputs, and SSE events emit the tool-result event type.

Client Message Rendering

Layer / File(s)Summary
Message grouping and thinking label
packages/cli/src/components/messages/bot-message.tsx
groupConsecutiveParts gains explicit PartGroup[] return type annotation; the reasoning label text adds a trailing space ("Thinking: " instead of "Thinking:").

Error Handling and Code Cleanup

Layer / File(s)Summary
Resume endpoint error response
packages/server/src/routes/chat.ts
/:sessionId/resume catch block returns a JSON error response with HTTP 500 status on failure instead of leaving the response unhandled.
Code cleanup
packages/server/src/lib/model.ts
Unused zod import (includes) is removed.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

  • Dibyendu-dev/daycode#12: Tweaks the same thinking/tool rendering pipeline with overlapping changes to ClientToolCallPart.status optionality, the "Thinking: " label in bot-message.tsx, and chat.ts tool-result/SSE event handling.
  • Dibyendu-dev/daycode#8: Modifies packages/server/src/routes/chat.ts chat streaming and tool-result SSE event handling logic that directly overlaps with this PR's server-side changes.
  • Dibyendu-dev/daycode#10: Modifies the same /:sessionId/resume error/abort handling paths in packages/server/src/routes/chat.ts.

Poem

🐰 Types are tighter, events now named,
Tool results stringify without shame,
"Thinking: " labels spaced just right,
Resume endpoints catch the light—
Small tweaks make the pipeline bright! ✨

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch thinking

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 and usage tips.

Sign up for freeto 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

@Dibyendu-dev
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

big fixes in thinking branch - #13

Merged
Dibyendu-dev merged 1 commit into
mainfrom
thinking
Jun 4, 2026
Merged

big fixes in thinking branch#13
Dibyendu-dev merged 1 commit into
mainfrom
thinking

Conversation

@Dibyendu-dev

@Dibyendu-devDibyendu-dev commented Jun 4, 2026

Copy link
Copy Markdown
Owner

Summary by CodeRabbit

Release Notes

  • Bug Fixes

    • Fixed error handling in the resume endpoint to properly return error responses instead of failing silently.
  • Refactor

    • Improved tool result output handling for better consistency and reliability.
    • Enhanced type definitions for improved code stability.

@Dibyendu-dev
Dibyendu-dev merged commit 0554271 into mainJun 4, 2026
1 check was pending
@coderabbitai

coderabbitaiBot commented Jun 4, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 1da2d88a-5764-4061-96a2-fd4963b9e657

📥 Commits

Reviewing files that changed from the base of the PR and between c6c26ef and 9f7cdc5.

📒 Files selected for processing (4)
  • packages/cli/src/components/messages/bot-message.tsx
  • packages/cli/src/hooks/useChat.ts
  • packages/server/src/lib/model.ts
  • packages/server/src/routes/chat.ts

📝 Walkthrough

Walkthrough

Tool call handling improvements across client and server: the ClientToolCallPart.status type is now optional; server tool-result streaming applies null-safe JSON serialization and uses the tool-result SSE event type; message rendering gains explicit type annotations and label spacing; and the resume endpoint error handling now returns proper JSON responses.

Changes

Tool Call Type Contract and Server Streaming

Layer / File(s)Summary
Tool call status optionality
packages/cli/src/hooks/useChat.ts
ClientToolCallPart.status is made optional (status?: "calling" | "done"), allowing tool calls to exist without requiring an explicit status field.
Tool-result SSE streaming and event handling
packages/server/src/routes/chat.ts
Tool-result output serialization uses null-safe JSON.stringify(...) ?? "null" for non-string outputs, and SSE events emit the tool-result event type.

Client Message Rendering

Layer / File(s)Summary
Message grouping and thinking label
packages/cli/src/components/messages/bot-message.tsx
groupConsecutiveParts gains explicit PartGroup[] return type annotation; the reasoning label text adds a trailing space ("Thinking: " instead of "Thinking:").

Error Handling and Code Cleanup

Layer / File(s)Summary
Resume endpoint error response
packages/server/src/routes/chat.ts
/:sessionId/resume catch block returns a JSON error response with HTTP 500 status on failure instead of leaving the response unhandled.
Code cleanup
packages/server/src/lib/model.ts
Unused zod import (includes) is removed.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

  • Dibyendu-dev/daycode#12: Tweaks the same thinking/tool rendering pipeline with overlapping changes to ClientToolCallPart.status optionality, the "Thinking: " label in bot-message.tsx, and chat.ts tool-result/SSE event handling.
  • Dibyendu-dev/daycode#8: Modifies packages/server/src/routes/chat.ts chat streaming and tool-result SSE event handling logic that directly overlaps with this PR's server-side changes.
  • Dibyendu-dev/daycode#10: Modifies the same /:sessionId/resume error/abort handling paths in packages/server/src/routes/chat.ts.

Poem

🐰 Types are tighter, events now named,
Tool results stringify without shame,
"Thinking: " labels spaced just right,
Resume endpoints catch the light—
Small tweaks make the pipeline bright! ✨

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch thinking

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 and usage tips.

Sign up for freeto 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

@Dibyendu-dev