Skip to content

AI Assistant update#15555

Merged
Rash419 merged 26 commits intomainfrom
rashesh/all-ai-prs-no-mcp
Apr 17, 2026
Merged

AI Assistant update#15555
Rash419 merged 26 commits intomainfrom
rashesh/all-ai-prs-no-mcp

Conversation

@Rash419
Copy link
Copy Markdown
Contributor

@Rash419 Rash419 commented Apr 17, 2026

Signed-off-by: Rashesh Padia rashesh.padia@collabora.com
Change-Id: Ifad042b287df733b829b98f1bae36d9727acc588

  • Target version: main

Copy link
Copy Markdown
Contributor

@quikee quikee left a comment

Choose a reason for hiding this comment

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

OK, don't look anything inherently wrong,. just some of the source files are starting to get out of control.

Comment thread wsd/ClientSession.cpp
@github-project-automation github-project-automation bot moved this from To Review to To Test in Collabora Online Apr 17, 2026
@Rash419 Rash419 force-pushed the rashesh/all-ai-prs-no-mcp branch from a3d6515 to fac531d Compare April 17, 2026 16:09
Rash419 added 23 commits April 17, 2026 16:23
Replace the single-shot LLM request with a server-driven tool loop
that supports multiple rounds of tool calls (extract, transform,
generate_image). The LLM can now inspect the document structure,
propose changes, and request user approval before applying them.

Signed-off-by: Rashesh Padia <rashesh.padia@collabora.com>
Change-Id: Ifad042b287df733b829b98f1bae36d9727acc588
Signed-off-by: Rashesh Padia <rashesh.padia@collabora.com>
Change-Id: I95265a93d44fac600aa5dcb1e347298fc760511f
Signed-off-by: Rashesh Padia <rashesh.padia@collabora.com>
Change-Id: Ibffcc768f6ad0fa77e6e038e0cf041046828edaf
Signed-off-by: Rashesh Padia <rashesh.padia@collabora.com>
Change-Id: Iee19ed51ad59320769a8166edf68792614460d0b
…sforms

When the LLM includes GenerateImage.N commands in a
transform_document_structure call, the server now generates images
via the AI image provider API and inserts them into slide
placeholders.

The flow uses progressive replacement: each GenerateImage.N is
rewritten to InsertImage.N with a loading placeholder before the
transform is forwarded to kit. Once kit applies the transform, the
server calls the image generation API for each pending image
sequentially and sends InsertImageAt mini-transforms to replace
the placeholders with real images without changing the user's
active slide.

Signed-off-by: Rashesh Padia <rashesh.padia@collabora.com>
Change-Id: I81e12c61ec9c713a51b8e801e8dcc30b516586bd
share code between handleAIImageGeneration and generateNextTransformImage

Signed-off-by: Rashesh Padia <rashesh.padia@collabora.com>
Change-Id: I2080326bd8243681db9ec151aea4240ecb9bf20d
Problem:
Everytime a new message was added the whole ai message chat container
was re-rendered which percives as flicker to the user

Solution:
Append the new message directly to the chat container instead of
re-rendering the whole chat history

Signed-off-by: Rashesh Padia <rashesh.padia@collabora.com>
Change-Id: I09aa5a26e3befeb4c5c4d024fa7d1dec1fdfc6c2
Signed-off-by: Rashesh Padia <rashesh.padia@collabora.com>
Change-Id: I94eca17296878b135c21c7c6328a7e6e09f03ef6
Signed-off-by: Rashesh Padia <rashesh.padia@collabora.com>
Change-Id: Ie85c2510ddbaada3d5508d8be967c6aa26b08b0c
Signed-off-by: Rashesh Padia <rashesh.padia@collabora.com>
Change-Id: I846c09fddb2372ec99288128d20e926bbcd42534
Add three new AI tools for spreadsheet documents:

- list_calc_functions: fetches the function catalog from core
  via .uno:CalcFunctionList so the LLM can discover available
  Calc functions and their signatures.

- evaluate_formula: evaluates a formula without inserting it
  via .uno:EvaluateFormula using ScSimpleFormulaCalculator with
  GRAM_ENGLISH. The LLM calls this to verify correctness before
  inserting.

- set_cell_formula: inserts formulas into cells via
  .uno:GoToCell + .uno:EnterString, with user approval.
  Supports batch operations via a formulas array parameter.

Signed-off-by: Rashesh Padia <rashesh.padia@collabora.com>
Change-Id: Ic82803ea9ff938d63ce533e89cb10389ea7833fc
When sending via Enter, the keyup event fires after sendMessage()
clears inputText but before the deferred layout task updates the
DOM. The keyup handler reads the stale textarea value and restores
inputText, causing the prompt to reappear when the AI response
triggers the next UI rebuild.

Clear the textarea DOM value synchronously in sendMessage() so
that the keyup handler reads an empty string.

Signed-off-by: Rashesh Padia <rashesh.padia@collabora.com>
Change-Id: I4637392df1974e0f89f8a5ac16f8bfcb64341689
Move the AI settings section to the top of the View Settings panel
(before Zotero and Document Signing) and rename the heading from
"AI Settings" to "AI Assistant" per UI/UX team feedback.

Signed-off-by: Rashesh Padia <rashesh.padia@collabora.com>
Change-Id: I5b8707e26559aed1ee28adc97a190b98e8968fd9
The server already extracts aiProviderModel from view settings but
strips it before sending to the client. Add it back as aiModelName
so the browser can display it in the sidebar title and approval
prompts. No sensitive data (API keys, URLs) is exposed.

Both the initial-load path (DocumentBroker) and the settings-update
path (ClientSession) now include aiModelName when AI is configured.

Signed-off-by: Rashesh Padia <rashesh.padia@collabora.com>
Change-Id: I033f0c52bcd7237fb3006b265c2e0d8337cc676d
Display the configured AI model name in the sidebar title, e.g.
"AI Assistant: GPT-4.1". Falls back to plain "AI Assistant" when
the model name is not available.

Add text-overflow ellipsis to the title for long model names.

Signed-off-by: Rashesh Padia <rashesh.padia@collabora.com>
Change-Id: Ic58fc8b47de231f2e730250740901a3c2cda63d4
Replace generic "The AI" with the actual model name (e.g. "GPT-4.1")
in document inspection and modification approval prompts. Falls back
to "The AI assistant" when the model name is not configured.

Use %1 format strings so translators can position the model name
correctly for their language.

Signed-off-by: Rashesh Padia <rashesh.padia@collabora.com>
Change-Id: I2561f53d50e644883cf91874ab61036364e71773
Add structural hooks for EU AI directive compliance text that will
be filled in later:

- Add an aichat-eu-notice widget (hidden) in the sidebar empty state
  area, between the intro text and prompt cards.
- Add explicit tooltip fields on the AI Assistant notebookbar buttons
  in Writer, Calc, and Impress so EU compliance text can be added to
  the tooltip without changing the button label.
- Add CSS styling for the EU notice area.

Signed-off-by: Rashesh Padia <rashesh.padia@collabora.com>
Change-Id: I048ef30ea854b89b67855ff79b1e97cdcf989cc2
Show a brief "Text inserted at cursor" or "Image inserted at cursor"
hint message after the user clicks the insert button on an AI
response. The hint auto-clears after 1.5 seconds (matching the
existing icon feedback duration) and is replaced if another hint
appears in the meantime.

Signed-off-by: Rashesh Padia <rashesh.padia@collabora.com>
Change-Id: I6efa368eb28a08937c4b9458e5b2416fc454ef19
Add a persistent notice below the text input informing users that
responses are generated by an external AI service and may be
inaccurate. The notice is always visible regardless of conversation
state, satisfying EU AI Act Article 50 transparency requirements.

Signed-off-by: Rashesh Padia <rashesh.padia@collabora.com>
Change-Id: Id8292d0967333cc8973b40f615d2d05d18218b19
Handle the new cellerror: message from core to display a floating
exclamation mark button at the top-left of the active cell when it
contains a formula error. Clicking the button opens a menu with
the error description, links to help and the function wizard, and
an option to edit in the formula bar.

Signed-off-by: Rashesh Padia <rashesh.padia@collabora.com>
Change-Id: I5a20764e2b01f6f3172b5c815fe565fceabd2152
The solid dark accent color background made text hard to read,
especially for spreadsheets (dark green) and presentations (orange).
Switch to a light 8% tint with dark text and an accent-colored
right border for visual distinction

Signed-off-by: Rashesh Padia <rashesh.padia@collabora.com>
Change-Id: I6c1963f23818af9efb738cb0d132631159dca7a2
Signed-off-by: Rashesh Padia <rashesh.padia@collabora.com>
Change-Id: Icc7577cbd127043221c81aa26ff4e47cbe0f4a99
This makes the comment marker distinguish more from formula error marker
introdcued in https://gerrit.collaboraoffice.com/c/core/+/636

Signed-off-by: Rashesh Padia <rashesh.padia@collabora.com>
Change-Id: Ic2114276b9c347cde4be7f7381b1deeae4e6d33d
Rash419 added 3 commits April 17, 2026 16:23
Signed-off-by: Rashesh Padia <rashesh.padia@collabora.com>
Change-Id: Iaed72ca90270a9793eb62186cbf81df9615d408c
Signed-off-by: Rashesh Padia <rashesh.padia@collabora.com>
Change-Id: I28eb3dfb8dadfb0adb8a1163951d0823319f186a
Signed-off-by: Rashesh Padia <rashesh.padia@collabora.com>
Change-Id: I1fd6d54a1183bc6469817289030dc942a266400c
@Rash419 Rash419 force-pushed the rashesh/all-ai-prs-no-mcp branch from fac531d to 536efe6 Compare April 17, 2026 16:36
@Rash419 Rash419 enabled auto-merge (rebase) April 17, 2026 16:38
@Rash419 Rash419 merged commit 47d6b64 into main Apr 17, 2026
14 of 15 checks passed
@Rash419 Rash419 deleted the rashesh/all-ai-prs-no-mcp branch April 17, 2026 17:40
@github-project-automation github-project-automation bot moved this from To Test to Done in Collabora Online Apr 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants