Commit Graph

17 Commits

Author SHA1 Message Date
Théo Poizat 1982f199ac Rework PromptService
- Use dependency injection and Get.find instead of manual singleton pattern
- Move from domain to data layer
- Prevents multiple API calls if the previous request hasn't finished
2026-03-25 11:52:35 +07:00
Théo Poizat b84b2ce703 Fetch prompts from scribePromptUrl
First, we try to fetch prompts from scribePromptUrl. At fallback, we
use local prompts.
2026-03-25 11:52:35 +07:00
Théo Poizat 2ab6e0df02 [Scribe] Add Improve button (#4335) 2026-03-25 11:52:35 +07:00
Théo Poizat c8253551b1 Add a toolbar to execute quick actions to Scribe suggestion
Actions :
 - copy
- regenerate
2026-03-25 11:52:35 +07:00
Théo Poizat 7a6a49fc7b Display Scribe mobile (bottomsheet) only when responsive mobile
Previosuly, we display Scribe mobile (bottomsheet) if platform was mobile, so also Android or iOS tablet.

Now we choose to display Scribe mobile relatively to display screens instead of platform to display the desktop Scribe (context menu) for tablets.
2026-03-25 11:52:35 +07:00
Théo Poizat 14f2e557fa Add Scribe mobile
Same features than Scribe desktop but as a full screen modal instead of  a context menu.

Reuse menu and submenu components.
Reuse suggestion components.
Reuse 99% of Scribe desktop style.
2026-03-25 11:52:35 +07:00
Théo Poizat 5bdcff5aba Extract Scribe menu item text and icons in components 2026-03-25 11:52:35 +07:00
Théo Poizat 4c75ec863d Extract AI Scribe menu item component
Scribe is always composed of menu (aka category) and submenu (aka action) :
- submenu item UI was already in an UI only component. I moved it to items folder.
- menu item UI was mixed in a component with desktop related UX. So I extract the UI to create an UI only component. I moved it also to items folder.
2026-03-25 11:52:35 +07:00
Théo Poizat 08899b1598 Extract AI Scribe suggestion logic
In Scribe desktop, the suggestion is displayed in a popup.
In Scribe mobile, it will be displayed in a full screen modal.

But it share the same logic about loading, success and error.

So here I extract this logic and use it in the AI Scribe desktop to be able to use it later in AI Scribe mobile.
2026-03-25 11:52:35 +07:00
dab246 94fd6f8071 TF-4195 Add Label to Thread 2026-01-19 11:34:43 +07:00
dab246 96b73aa971 feat(ai-scribe): Avoid the prompt being obscured when there is a lot of content. 2025-12-19 19:03:39 +07:00
dab246 af5f316e31 feat(ai-scribe): Optimize imports to avoid having too many lines of code in a single file 2025-12-19 19:03:39 +07:00
dab246 582b1ebe97 feat(ai-scribe): reorganize abstractions and update dialog modal UI 2025-12-19 19:03:39 +07:00
dab246 7ddccf2e1c feat(ai-scribe): Fix cannot parsing AI capability from Session 2025-12-19 19:03:39 +07:00
Théo Poizat 0075fd64b6 feat: Remove .env file for AI Scribe
It was used at the beginning for configuration purpose but now we
have the JMAP capability, no need anymore.
2025-12-19 19:03:39 +07:00
Théo Poizat 2f3bbe3bbb Do not display AI scribe if AI is not enabled in env.file 2025-12-19 19:03:39 +07:00
Théo Poizat 7e0c98b080 Add scribe module 2025-12-19 19:03:39 +07:00