## Summary
Make checkpoint resume a crash-recovery fallback: if the saved anchor is
missing, malformed, stale, or no longer present in the current source
listing, the connector returns `ErrSyncResumeInvalid` and the runner
restarts the same fixed sync window from the beginning.
Fix 0-byte upload handling in naive.py. Six sites used if not binary (falsy check) causing b"" to fall back to opening filename (display name, not path). Now uses binary is None.
---------
Signed-off-by: Yash Raj Pandey <yashpn62@gmail.com>
Fix SDK examples polling status "1" which the API never returns — it returns mapped names like "DONE". Both loops timed out even on success. Now checks "DONE". The SDK already does this correctly. Failed parsing still times out (pre-existing).
Fix false db_schema_sync.py detection reporting timestamp columns as removed. skip_fields only skipped "id" but callers stripped all five timestamps. Now skips all five. Without this, --drop would generate destructive migrations dropping these columns from every table.
### Summary
Both configuration guides document the API server's port as `port`:
- `docs/administrator/configurations/configurations.md:152`
- `docker/README.md:190`
The key in `docker/service_conf.yaml.template:5` is `http_port`
### Summary
The cross-language system prompt instructs the LLM to separate
translations with `###`, while both the Python and Go implementations
parse the response using `===`.
Fix trap overwrite in build.sh --run where the ingestor cleanup trap replaced the admin one, leaving admin server running on port 9383. Combined both PIDs into a single trap covering both processes. Empty PID case handled.
Fix Deep Research cancellation race where partial results could return nil error if workers finished as request canceled. Now waits for workers first, then checks context error. Deterministic propagation.
### Summary
Fix `DataSet.list_documents(ids=[...])` by passing the ID list through
the request parameter mapping, which serializes it as repeated `ids`
query parameters.
This preserves existing behavior for `ids=[]` as an unfiltered request
and for combining `id` with non-empty `ids`, which raises `ValueError`.
Add regression coverage for all three cases.
Co-authored-by: root <kinsonnee@gmail.com>
Fix canvas autosave wiping pipelines (#18771). Previously saved empty graph on any change/remount. Now only autosaves when canvas has nodes/edges, agent is loaded, and chat drawer closed. Fetch no longer clears loaded canvas on empty DSL. Tests added.
Fixes#18771
### Summary
Add Xquik as a new data source for X (Twitter) post ingestion. Supports Latest/Top queries, cursor pagination, incremental sync, and maps engagement/media to RAGFlow documents. Stops duplicate requests on repeated cursors. Tests and docs included.
---------
Co-authored-by: kriptoburak <kriptoburak@users.noreply.github.com>
## Summary
Fix entrypoint.sh restart loops where non-zero exits would terminate the subshell instead of retrying (root cause of #18542). Now wraps each binary with set +e / set -e to capture exit status and log it before restarting. Applied to 6 loops. Complementary to #17196.
Co-authored-by: skbs-eng <skbs-eng@users.noreply.github.com>
### Summary
Provider settings were saved correctly, but reopening them requested the
instance by ID while the running backend could only find it by name.
The fix makes provider instance reads honor the saved ID, so
configurations load correctly after reopening.
Fix OpenSearch update missing kb_id scope. Unlike Elasticsearch, OSConnection.update dropped the knowledgebaseId argument, causing updates (like clearing pagerank) to apply to all datasets in a tenant. Now adds kb_id to the query condition.