Skip to content

fix: inject notebook name and description into chat system prompt#719

Merged
lfnovo merged 1 commit into
mainfrom
fix/chat-notebook-context
May 22, 2026
Merged

fix: inject notebook name and description into chat system prompt#719
lfnovo merged 1 commit into
mainfrom
fix/chat-notebook-context

Conversation

@lfnovo
Copy link
Copy Markdown
Owner

@lfnovo lfnovo commented Apr 6, 2026

Summary

  • Fetch the notebook linked to the chat session via the refers_to relationship in the /chat/execute endpoint
  • Pass the notebook object into the LangGraph state so the Jinja2 template can render it
  • Update the chat system prompt template to render notebook.name and notebook.description instead of the raw object

Closes #685

Test plan

  • All 135 existing tests pass
  • Open a notebook with a name and description, start a chat session, and verify the LLM response is contextually aware of the notebook topic

The chat system prompt template had a conditional block for notebook
metadata but the /chat/execute endpoint never populated it. Fetch the
notebook linked to the session via the refers_to relationship and pass
it to the graph state so the LLM receives the notebook's name and
description as project context.

Closes #685
Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1 issue found across 2 files

Confidence score: 3/5

  • There is a concrete user-impacting risk in api/routers/chat.py: when notebook lookup raises NotFoundError, it is mapped to "Session not found," which can fail valid sessions if the linked notebook is missing.
  • I’m scoring this as moderate merge risk because the issue is medium severity (6/10) with high confidence (8/10) and affects request error handling behavior.
  • Pay close attention to api/routers/chat.py - exception mapping may return the wrong failure mode and block otherwise valid session flows.
Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="api/routers/chat.py">

<violation number="1" location="api/routers/chat.py:352">
P2: Notebook lookup can raise `NotFoundError` that is incorrectly converted to "Session not found", causing valid sessions to fail when linked notebook is missing.</violation>
</file>

Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.

Comment thread api/routers/chat.py
)
notebook = None
if notebook_query:
notebook = await Notebook.get(notebook_query[0]["out"])
Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai Bot Apr 6, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2: Notebook lookup can raise NotFoundError that is incorrectly converted to "Session not found", causing valid sessions to fail when linked notebook is missing.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At api/routers/chat.py, line 352:

<comment>Notebook lookup can raise `NotFoundError` that is incorrectly converted to "Session not found", causing valid sessions to fail when linked notebook is missing.</comment>

<file context>
@@ -342,6 +342,15 @@ async def execute_chat(request: ExecuteChatRequest):
+        )
+        notebook = None
+        if notebook_query:
+            notebook = await Notebook.get(notebook_query[0]["out"])
+
         # Determine model override (per-request override takes precedence over session-level)
</file context>
Fix with Cubic

@lfnovo lfnovo merged commit 000f46a into main May 22, 2026
11 checks passed
@lfnovo lfnovo deleted the fix/chat-notebook-context branch May 22, 2026 00:27
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.

Chat prompt missing notebook name and description

1 participant