99 Commits

Author SHA1 Message Date
Edward Ly 2d01dd6327 feat(TaskProcessing): add AudioToTextSubtitles TaskType
Signed-off-by: Edward Ly <contact@edward.ly>
2026-06-17 08:13:55 -07:00
Yoan Bozhilov 80f72a86e7 fix(taskprocessing): @since 35.0.0 for claimNextScheduledTask
The new public IManager::claimNextScheduledTask lands in master (35.0.0),
not 34.0.0. Addresses review feedback.

Signed-off-by: Yoan Bozhilov <bygadd@gmail.com>
Assisted-by: Claude Code:claude-opus-4-8
2026-06-17 07:45:49 +03:00
Yoan Bozhilov 0799454a1f fix(taskprocessing): claim tasks atomically with SKIP LOCKED + composite index
Replace the worker retry/ignore-list claim-loop with a single atomic
SELECT ... FOR UPDATE SKIP LOCKED claim (SQLite bounded-retry fallback),
preserving the no-duplicate guarantee while removing the thundering-herd
contention that throttled backlog draining. Add a (status,type,last_updated)
index via the table-creating migration + db:add-missing-indices listener.

Signed-off-by: Yoan Bozhilov <bygadd@gmail.com>
Assisted-by: Claude Code:claude-opus-4-8
2026-06-15 16:37:34 +02:00
Julien Veyssier d8477ed7d4 feat(task-streaming): set preferStreaming default value to false, allow setting it with the OCS API
Signed-off-by: Julien Veyssier <julien-nc@posteo.net>
2026-06-12 10:34:11 +02:00
Julien Veyssier 76709d7efc feat(task-streaming): address review comments
Signed-off-by: Julien Veyssier <julien-nc@posteo.net>
2026-06-10 15:38:10 +02:00
Julien Veyssier 8ee02812ef feat(task-streaming): rename ISynchronousOptionsProvider to ISynchronousOptionsAwareProvider
Signed-off-by: Julien Veyssier <julien-nc@posteo.net>
2026-06-10 14:52:56 +02:00
Julien Veyssier b04de05805 fix(task-streaming): fix psalm issues, run cs:fix, gen openapi specs
Signed-off-by: Julien Veyssier <julien-nc@posteo.net>
2026-06-10 14:52:56 +02:00
Julien Veyssier 207f347afc feat(task-streaming): add new provider interface
Signed-off-by: Julien Veyssier <julien-nc@posteo.net>
2026-06-10 14:52:56 +02:00
Julien Veyssier ddf914231b feat(task-streaming): add preferStreaming boolean attribute to taskprocessing tasks. pass it to ISynchronousProgressiveProvider::process
Signed-off-by: Julien Veyssier <julien-nc@posteo.net>
2026-06-10 14:52:56 +02:00
Julien Veyssier a6e6d92103 feat(task-streaming): do not update the task in DB when setting intermediate result if notify_push is available
Signed-off-by: Julien Veyssier <julien-nc@posteo.net>
2026-06-10 14:52:56 +02:00
Julien Veyssier e4bea82c86 feat(task-streaming): add an endpoint to set a task intermediate output
Signed-off-by: Julien Veyssier <julien-nc@posteo.net>
2026-06-10 14:52:56 +02:00
Julien Veyssier 7870537d01 feat(task-streaming): allow the Php providers to set intermediate results with a callback in process
Signed-off-by: Julien Veyssier <julien-nc@posteo.net>
2026-06-10 14:52:56 +02:00
Côme Chilliet 1ab09ec753 chore: Apply new coding standard to all files
The diff can be checked using: git diff --ignore-all-space --ignore-blank-lines
To see only the changes not related to blank lines.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2026-06-01 13:46:39 +02:00
Lukas Schaefer a2a06ec96d Merge pull request #60171 from nextcloud/feat/task/reformat-paragraphs
feat(TaskProcessing): add TextToTextReformatParagraphs task type
2026-05-08 04:21:20 -04:00
Joas Schilling c1ab99e9fc Merge pull request #59940 from nextcloud/bug/noid/fix-since-checker
Fix since checker
2026-05-07 11:25:42 +02:00
Lukas Schaefer 574243fab3 feat(TaskProcessing): add TextToTextReformatParagraphs task type
Signed-off-by: Lukas Schaefer <lukas@lschaefer.xyz>
2026-05-06 09:03:07 -04:00
Ferdinand Thiessen 81752fc9ed chore(ocp): add Override attribute to all OCP classes
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-04-28 21:29:27 +02:00
Daniel Kesselberg 25ca85e329 docs(ocp): Add since tag
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2026-04-28 11:17:27 +02:00
Oleksander Piskun f573285040 feat(taskprocessing): Add queue_stats API endpoint for external autoscalers
Signed-off-by: Oleksander Piskun <oleksandr2088@icloud.com>
2026-03-30 12:03:19 +00:00
Marcel Klehr a45978789b fix(TaskProcessing): Expose userFacingErrorMessage on ResponseDefinitions#CoreTaskProcessingTask
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2026-01-12 18:32:33 +01:00
Marcel Klehr 0745731806 fix(TaskProcessing): Increase EShapeType::Text limit to 256_000 KB
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-12-15 07:53:26 +01:00
Marcel Klehr 25044f82ae fix(TaskProcessing): Adjust OCR task type to allow for multiple files and pdfs
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-12-09 09:21:33 +01:00
Marcel Klehr 3355e6a2f7 feat(TaskProcessing): Add OCR TaskType
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-12-08 17:44:37 +01:00
Julien Veyssier b4f7fe2cb6 feat(taskprocessing): add a boolean 'includeWatermark' to taskprocessing tasks and pass it to ISynchronousWatermarkingProvider::process
Signed-off-by: Julien Veyssier <julien-nc@posteo.net>
2025-11-27 11:32:08 +01:00
Julien Veyssier 33d1acddc7 fix(ai-apis): reject text inputs that are longer than 64K chars
Signed-off-by: Julien Veyssier <julien-nc@posteo.net>
2025-11-10 17:29:09 +01:00
Marcel Klehr b5f057cdbc fix: Fix psalm issue
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-10-30 10:49:28 +01:00
Marcel Klehr d04d575ed3 Merge branch 'master' into feat/taskprocessing/user-facing-error-message
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-10-30 10:13:39 +01:00
Marcel Klehr 044e92bf4e feat(TaskProcessing): Introduce ITriggerableProvider
Signed-off-by: Marcel Klehr <mklehr@gmx.net>

# Conflicts:
#	lib/private/TaskProcessing/Db/TaskMapper.php
2025-10-20 15:59:25 +02:00
Marcel Klehr 9df303f876 fix: address review comments
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-10-20 15:54:10 +02:00
Marcel Klehr 3f527661b1 fix: Create new class instead of extending existing class
to make it easier to use this across nextcloud versions

Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-10-15 11:20:00 +02:00
Marcel Klehr 8cf1504a76 fix: Apply suggestion from @kyteinsky
Co-authored-by: Anupam Kumar <kyteinsky@gmail.com>
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-10-14 16:58:40 +02:00
Marcel Klehr 7373f11af6 feat(TaskProcessing): user-facing error messages
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-10-14 16:53:41 +02:00
Marcel Klehr 16da8bbc8a fix(TaskProcessingApiController): Implement getNextScheduledTasks for next_batch endpoint
in order to avoid hitting the DB with multiple 1 row requests

Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-10-14 11:50:29 +02:00
Marcel Klehr 13eb2d1cbd feat(TaskProcessing): Introduce internal task types
which are not shown in the assistant UI

Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-10-13 11:07:40 +02:00
Julien Veyssier 8c447eaba6 feat(taskprocessing): add manager method to get the list of available task type IDs
Signed-off-by: Julien Veyssier <julien-nc@posteo.net>
2025-09-05 11:37:34 +02:00
Julien Veyssier 222b19b805 feat(taskprocessing): rename cleanup column to allow_cleanup
Signed-off-by: Julien Veyssier <julien-nc@posteo.net>
2025-08-07 15:12:22 +02:00
Julien Veyssier 8c52b6c0fe feat(taskprocessing): add cleanup flag to tasks to decide if they should be cleaned up automatically
Signed-off-by: Julien Veyssier <julien-nc@posteo.net>
2025-08-07 15:12:21 +02:00
Julien Veyssier be7ef439cf fix(taskprocessing): move LAZY_CONFIG_KEYS constant to the private namespace
Signed-off-by: Julien Veyssier <julien-nc@posteo.net>
2025-08-04 10:11:24 +02:00
Julien Veyssier 2e3fa51132 feat(taskprocessing): load and store some config keys lazily
Signed-off-by: Julien Veyssier <julien-nc@posteo.net>
2025-08-04 10:11:24 +02:00
Lukas Schaefer 4731ecf4d4 Merge branch 'master' into feat/task/analyze-image 2025-07-08 08:35:04 -04:00
Julien Veyssier 2da3f450fa feat(TaskProcessing): add agency audio-to-audio task type
Signed-off-by: Julien Veyssier <julien-nc@posteo.net>
2025-07-07 15:29:55 +02:00
Julien Veyssier af059cbf61 feat(TaskProcessing): add audio-to-audio chat task type
Signed-off-by: Julien Veyssier <julien-nc@posteo.net>
2025-07-07 11:39:47 +02:00
Lukas Schaefer 20a779e4aa feat: support multiple images
Signed-off-by: Lukas Schaefer <lukas@lschaefer.xyz>
2025-07-03 11:01:10 -04:00
Jana Peper f8886fe27a feat: add toggle for AI guest restriction
Signed-off-by: Jana Peper <jana.peper@nextcloud.com>
2025-07-03 10:25:19 +02:00
Lukas Schaefer 3e24c40939 feat(TaskProcessing): Add AnalyzeImage TaskType
Signed-off-by: Lukas Schaefer <lukas@lschaefer.xyz>
2025-07-02 09:18:53 -04:00
Lukas Schaefer 99e8849b6c feat(TaskProcessing): Add TextToSpeech provider
Signed-off-by: Lukas Schaefer <lukas@lschaefer.xyz>
2025-04-26 00:46:23 -04:00
Marcel Klehr 19ede62b90 fix(ContextAgent): Do not translate the name ContextAgent
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-04-14 08:14:14 +02:00
Lukas Schaefer b4dcace2ac Fix(TaskProcessing): for validation for taskprocessing EShapeType
Signed-off-by: Lukas Schaefer <lukas@lschaefer.xyz>
2025-04-11 02:56:36 -04:00
Oleksander Piskun c23ab0d1f7 fix(taskprocessing): use the event for AppAPI to get list of AI providers
Signed-off-by: Oleksander Piskun <oleksandr2088@icloud.com>
2025-04-09 15:47:48 +03:00
Jana Peper 5d192150d1 fix: task type translations
Signed-off-by: Jana Peper <jana.peper@nextcloud.com>
2025-03-26 10:24:24 +01:00