Feat: Edit the output data of the code operator #3221 (#8649)
### What problem does this PR solve?
Feat: Edit the output data of the code operator #3221
### Type of change
- [x] New Feature (non-breaking change which adds functionality)
Feat: Display the iteration operator toolbar #3221 (#8645)
### What problem does this PR solve?
Feat: Display the iteration operator toolbar #3221
### Type of change
- [x] New Feature (non-breaking change which adds functionality)
Optimize the style and logic of the profile (#8639)
### What problem does this PR solve?
Optimize the style and logic of the profile [#3221
](https://github.com/infiniflow/ragflow/issues/3221)
### Type of change
- [x] Bug Fix (non-breaking change which fixes an issue)
Feat: Combine the output logs of the same operator together #3221 (#8638)
### What problem does this PR solve?
Feat: Combine the output logs of the same operator together #3221
### Type of change
- [x] Bug Fix (non-breaking change which fixes an issue)
### What problem does this PR solve?
Issue #8602
`parser_config.task_page_size` can be defaults to `None` when dataset is
created by API. This was not handled by the `task_executor.py` code thus
`page_size` could sometimes be `None` which will cause issue in line
351.
### Type of change
- [x] Bug Fix (non-breaking change which fixes an issue)
### What problem does this PR solve?
The following error occurred during local testing, which should be fixed
by configuring 'exist_ok=True'.
```log
set_progress(7461edc253), progress: -1, progress_msg: 21:41:41 Page(1~100000001): [ERROR][Errno 17] File exists: '/ragflow/tmp'
```
### Type of change
- [x] Bug Fix (non-breaking change which fixes an issue)
Update Chrome download URL in use_china_mirrors configuration (#8628)
### What problem does this PR solve?
Update Chrome download URL in use_china_mirrors configuration
### Type of change
- [x] Bug Fix (non-breaking change which fixes an issue)
Co-authored-by: lqh <liqunhuan@foreveross.com>
Feat: Convert the arguments parameter of the code operator to a dictionary #3221 (#8623)
### What problem does this PR solve?
Feat: Convert the arguments parameter of the code operator to a
dictionary #3221
### Type of change
- [x] New Feature (non-breaking change which adds functionality)
fix opendal config 'oss_table' and 'max_allowed_packet' (#8611)
### What problem does this PR solve?
Fix the config option name of the opendal table name and setting of
'max_allowed_packet'.
### Type of change
- [x] Bug Fix (non-breaking change which fixes an issue)
Signed-off-by: He Wang <wanghechn@qq.com>
Add Google Cloud Vision API Integration (Image2Text) (#8608)
### What problem does this PR solve?
This PR introduces Google Cloud Vision API integration to enhance image
understanding capabilities in the application. It addresses the need for
advanced image description and chat functionalities by implementing a
new `GoogleCV` class to handle API interactions and updating relevant
configurations. This enables users to leverage Google Cloud Vision for
image-to-text tasks, improving the application's ability to process and
interpret visual data.
### Type of change
- [x] New Feature (non-breaking change which adds functionality)
Feat: Construct the to field of the classification operator when saving data #3221 (#8610)
### What problem does this PR solve?
Feat: Construct the to field of the classification operator when saving
data #3221
### Type of change
- [x] New Feature (non-breaking change which adds functionality)
### What problem does this PR solve?
- Add comprehensive test suite for chunk operations including:
- Test files for create, list, retrieve, update, and delete chunks
- Authorization tests
- Batch operations tests
- Update test configurations and common utilities
- Validate `important_kwd` and `question_kwd` fields are lists in
chunk_app.py
- Reorganize imports and clean up duplicate code
### Type of change
- [x] Add test cases
### What problem does this PR solve?
docx parse error.

### Type of change
- [x] Bug Fix (non-breaking change which fixes an issue)
### What problem does this PR solve?
Some docx parse with naive cause error. `block.style.name` in Function
`__get_nearest_title` will be None in some case.
### Type of change
- [ ] Bug Fix (non-breaking change which fixes an issue)
Co-authored-by: wenxuan.zhang <wenxuan.zhang@chinacreator.com>
Fix: Fixed the issue that the global variables of the code operator cannot be selected #3221 (#8605)
### What problem does this PR solve?
Fix: Fixed the issue that the global variables of the code operator
cannot be selected #3221
### Type of change
- [x] New Feature (non-breaking change which adds functionality)
Fixed the issue where variables were not displayed in the switch operator #3221 (#8601)
### What problem does this PR solve?
Feat: Fixed the issue where variables were not displayed in the switch
operator #3221
### Type of change
- [x] New Feature (non-breaking change which adds functionality)
fix: Correctly format message parts in GoogleChat (#8596)
### What problem does this PR solve?
This PR addresses an incompatibility issue with the Google Chat API by
correcting the message content format in the `GoogleChat` class.
Previously, the content was directly assigned to the "parts" field,
which did not align with the API's expected format. This change ensures
that messages are properly formatted with a "text" key within a
dictionary, as required by the API.
### Type of change
- [x] Bug Fix (non-breaking change which fixes an issue)
Feat: Add agent advanced settings form #3221 (#8592)
### What problem does this PR solve?
Feat: Add agent advanced settings form #3221
### Type of change
- [x] New Feature (non-breaking change which adds functionality)
### What problem does this PR solve?
Fix: the output log is incorrect
### Type of change
- [ ] Bug Fix (non-breaking change which fixes an issue)
Co-authored-by: liang <xiaofeng.liang@landstech.com.cn>
### What problem does this PR solve?
Add file management HTTP_API for operating files
### Type of change
- [x] New Feature (non-breaking change which adds functionality)
Pass Form Instance to GoogleModal Form Component (#8586)
### What problem does this PR solve?
This PR enables the `Form` component within the `GoogleModal` to
directly access and manipulate the form state by passing the form
instance from the parent component. This enhances form control and data
manipulation capabilities within the modal, improving the component's
functionality and integration with the parent form.
### Type of change
- [x] New Feature (non-breaking change which adds functionality)
Feat: In a dialog message, users can enter different types of data #3221 (#8583)
### What problem does this PR solve?
Feat: In a dialog message, users can enter different types of data #3221
### Type of change
- [x] New Feature (non-breaking change which adds functionality)
Adding semaphore usage on the '/run' endpoint (#8526)
### What problem does this PR solve?
Switching threading.Lock() to asyncio.Lock(), since threading.Lock() is
blocking.
### Type of change
- [x] Performance Improvement
Feat: Fixed the issue that the top toolbar disappears when opening the agent operator form #3221 (#8579)
### What problem does this PR solve?
Feat: Fixed the issue that the top toolbar disappears when opening the
agent operator form #3221
### Type of change
- [x] New Feature (non-breaking change which adds functionality)
### What problem does this PR solve?
Feat: Support GiteeAI model #1853
### Type of change
- [x] New Feature (non-breaking change which adds functionality)
Feat: Allow users to enter text in the middle of a chat #3221 (#8569)
### What problem does this PR solve?
Feat: Allow users to enter text in the middle of a chat #3221
### Type of change
- [x] New Feature (non-breaking change which adds functionality)
Feat: Fixed the issue where the begin operator parameters could not be submitted during debugging #3221 (#8539)
### What problem does this PR solve?
Feat: Fixed the issue where the begin operator parameters could not be
submitted during debugging #3221
### Type of change
- [x] New Feature (non-breaking change which adds functionality)
Feat: Display sub-agents in agent form #3221 (#8536)
### What problem does this PR solve?
Feat: Display sub-agents in agent form #3221
### Type of change
- [x] New Feature (non-breaking change which adds functionality)
Feat: Fixed the issue where the prompt menu content was hidden #3221 (#8530)
### What problem does this PR solve?
Feat: Fixed the issue where the prompt menu content was hidden #3221
### Type of change
- [x] New Feature (non-breaking change which adds functionality)
Feat: allow users to choose which MCP tools are enabled (#8519)
### What problem does this PR solve?
Allow users to choose which MCP tools are enabled.
### Type of change
- [x] New Feature (non-breaking change which adds functionality)
Fix memory leaks in PIL image and BytesIO handling during chunk processing (#8522)
### What problem does this PR solve?
This PR addresses critical memory leaks in the task executor's image
processing pipeline. The current implementation fails to properly
dispose of PIL Image objects and BytesIO buffers during chunk
processing, leading to progressive memory accumulation that can cause
the task executor to consume excessive memory over time.
### Background context
- The `upload_to_minio` function processes images from document chunks
and converts them to JPEG format for storage.
- PIL Image objects hold significant memory resources that must be
explicitly closed to prevent memory leaks.
- BytesIO objects also consume memory and should be properly disposed of
after use.
- In high-throughput scenarios with many image-containing documents,
these memory leaks can lead to out-of-memory errors and degraded
performance.
### Specific issues fixed
- PIL Image objects were not being explicitly closed after processing.
- BytesIO buffers lacked proper cleanup in all code paths.
- Converted images (RGBA/P to RGB) were not disposing of the original
image object.
- Memory references to large image data were not being cleared promptly.
### Type of change
- [x] Bug Fix (non-breaking change which fixes an issue)
- [x] Performance Improvement
### Changes made
- Added explicit `d["image"].close()` calls after image processing
operations.
- Implemented proper cleanup of converted images when changing formats
from RGBA/P to RGB.
- Enhanced BytesIO cleanup with `try/finally` blocks to ensure disposal
in all code paths.
- Added explicit `del d["image"]` to clear memory references after
processing.
This fix ensures stable memory usage during long-running document
processing tasks and prevents potential out-of-memory conditions in
production environments.
Refactor:improve the logic to check cancel (#8524)
### What problem does this PR solve?
improve the logic to check cancel
### Type of change
- [x] Refactoring
---------
Co-authored-by: Kevin Hu <kevinhu.sh@gmail.com>
### What problem does this PR solve?
stack:
```
2025-06-26 17:22:24,739 ERROR 1609 list index out of range
Traceback (most recent call last):
File "/ragflow/.venv/lib/python3.10/site-packages/flask/app.py", line 880, in full_dispatch_request
rv = self.dispatch_request()
File "/ragflow/.venv/lib/python3.10/site-packages/flask/app.py", line 865, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
File "/ragflow/api/utils/api_utils.py", line 298, in decorated_function
return func(*args, **kwargs)
File "/ragflow/api/apps/sdk/session.py", line 472, in list_session
print(conv["reference"][message_num])
IndexError: list index out of range
```

### Type of change
- [ ] Bug Fix (non-breaking change which fixes an issue)
- [ ] New Feature (non-breaking change which adds functionality)
- [ ] Documentation Update
- [ ] Refactoring
- [ ] Performance Improvement
- [ ] Other (please describe):
### What problem does this PR solve?
Feat: Add StringTransform operator #3221
### Type of change
- [x] New Feature (non-breaking change which adds functionality)
fix(prompt-editor): resolve initial cursor position and auto-newline … (#8511)
### What problem does this PR solve?
In web folder's prompt-editor component, when entering content for the
first time, the cursor position is abnormal and it will automatically
wrap
### Type of change
- [x] Bug Fix (non-breaking change which fixes an issue)
Co-authored-by: leonlai <owllai123456>
### What problem does this PR solve?
Fix chunk number error after re-parsing. #8503.
### Type of change
- [x] Bug Fix (non-breaking change which fixes an issue)
Feat: Displays the output variable type selected by the loop operator #3221 (#8515)
### What problem does this PR solve?
Feat: Displays the output variable type selected by the loop operator
#3221
### Type of change
- [x] New Feature (non-breaking change which adds functionality)