Tags: ModelEngine-Group/nexent
Tags
Release/v2.4.0 (#3677) * 修复无法正常重命名conversation名称的问题 (cherry picked from commit 9769f2e) * 修复天舟北向接口存在流式缓存的问题 * 修复mcp工具的enabled状态为false的时候还显示“已启用 * 修复无法正常创建新会话的问题 * Bugfix: Fix inability to delete conversation * Bugfix: Fix inability to delete conversation (#3634) * Bugfix: Fix markdown table rendering issue after reasoning completes (cherry picked from commit 3f1d562) * 🐛 Bugfix: Fixed an issue where the tenant resource management page failed to correctly detect model connectivity. (#3652) * 🐛 Bugfix: Fixed an issue where an embedding model could not be added if the URL did not end with `/embeddings`. * 🐛 Bugfix: Fixed an issue where clicking to view skills before the skills API returned a response would result in a blank screen on the agent editing page. (#3664) * 🐛 Bugfix: Fixed an issue where clicking to view skills before the skills API returned a response would result in a blank screen on the agent editing page. * 🐛 Bugfix: Fixed an issue where clicking to view skills before the skills API returned a response would result in a blank screen on the agent editing page. * 🐛 fix : merge to release2.4.0 (#3674) * fix: resolve embedding_model_id from knowledge record in data process trigger * fix: resolve embedding_model_id from knowledge record in data process trigger * fix: restore ASSET_OWNER nav permissions and improve group selection - Restore ASSET_OWNER left-nav permissions (/newchat, /agent-tasks, /users) and stop deleting them in v2.4 merged migration - Use getAccessibleGroupIds for knowledge base group pickers so admins can select all tenant groups - Show deleted group placeholders in agent/KB group selects via buildGroupSelectOptions - Bump web/docs Docker images from Node 20 to 22 * ✨ Parameterize file split function in data-process task 🧪 Add telemetry data for knowledge base (#3676) * ✨ Parameterize file split function in data-process task 🧪 Add telemetry data for knowledge base * 🧪 Add test files --------- Co-authored-by: xuyaqist <xuyaqist@gmail.com> Co-authored-by: panyehong <91180085+YehongPan@users.noreply.github.com> Co-authored-by: panyehong <2655992392@qq.com> Co-authored-by: Dallas98 <40557804+Dallas98@users.noreply.github.com> Co-authored-by: Lifeng-Chen <174292121+Lifeng-Chen@users.noreply.github.com> Co-authored-by: Xia Yichen <iamjasonxia@126.com>
Release v2.3.0 (#3436) * 🐛 Bugfix: Guard memory_user_config against None in store/search memory tools (#3359) * 🐛 Bugfix: Guard memory_user_config against None in store/search memory tools Add None checks before accessing memory_user_config attributes in StoreMemoryTool and SearchMemoryTool. When config is unavailable, apply conservative default (agent_share_option='never') to prevent unintended cross-agent memory sharing. * fix(memory): restore hidden tabs and hide Tenant Shared in speed mode - Fix nested array syntax bug that hid Tenant Shared and Agent Shared tabs - Conditionally hide Tenant Shared tab when isSpeedMode=true (no tenant concept) - All 5 tabs now properly visible in non-speed mode - 4 tabs visible in speed mode (Tenant Shared hidden) * test: add coverage for memory None guard, duplicate cleanup, and system tool filtering - test_store_memory_tool: add None config, _run_coroutine tests - test_search_memory_tool: add None config, _run_coroutine tests - test_memory_config_service: add duplicate record cleanup tests - test_tool_configuration_service: add SYSTEM_MANAGED_TOOL_NAMES filter test * ✨Feat:Integrate openjiuwen's intelligent agent evaluation function close#3188 (#3356) * ✨Feat:add prompt optimization * 🐛Bugfix: dockerbuild failed when running pipefail in python3_11 * 🔨Optimize: Optimize prompt optimization display page and interaction methods * ✨Feat:add agent evaluator * 🐛Bugfix: fix fronted and report download * 🐛 Bugfix: Add xlrd dependency and improve openjiuwen SDK adapter to handle circular imports more effectively. Update import paths in frontend components for consistency. * ♻️Refactor: frontend style refact * 🔨Rename evaluator sql * ♻️ Refactor: Optimize the frontend page for agent evaluation * ♻️Refactor: update modal mask properties for consistency * ♻️ Refactor: Simplify locale handling and clean up imports in OAuthCompletePage and UserManageComp * ✨ Feature: Enhance agent evaluation with Chinese output directive and new database migrations * 🔧 Update: Change button variant from "outline" to "outlined" in EvaluationConfigCard and EvaluationReportCard components; enhance datetime handling in test_client.py to ensure correct timezone representation. * 🧪Test: Add unit tests for the jiuwen_sdk_adapter to verify module-level behavior and side effects. * 🔧 Update: Refactor the mock invocation in test_jiuwen_sdk_adapter to use an async function for better compatibility with asynchronous tests. * 🧪 Test: Add comprehensive unit tests for evaluation set functionality, including CRUD operations and Excel parsing, to ensure robust behavior and error handling. * 🧪 Test: Add extensive unit tests for Jiuwen SDK adapter and evaluation services, covering lazy imports, log envelope parsing, and case validation to enhance error handling and ensure robust functionality. * 🔧 Update: Consolidate judge_model_id addition into agent_evaluation_t migration, removing the separate migration file for improved installation simplicity and ensuring idempotency in existing environments. * 🔧 Update: Introduce a consolidated migration file for agent evaluation, combining previous separate migrations into a single idempotent script for improved installation simplicity and clarity. This includes the addition of evaluation tables and the pass_status column, ensuring all necessary structures are created in one step. * fix:Fix share link copy fallback (#3340) * feat: add conversation share * add ut test * add conversation share db tests * Fix share link copy fallback * 🐛 Bugfix: Update homepage redirect link (#3376) * Bugfix:add crypto.randomUUID() fallback in http * Bugfix: Update homepage redirect link * 🐛 Bugfix: Tool debugging bug fixes. (#3371) [Specification Details] 1. Standardizing the styling of debugging pop-ups in frontend tools. 2. Tool debugging configuration parameters are retrieved from the store rather than from the API each time. * 🐛 Bugfix: W11 capacity suggestion for batch gear modals + model add/edit fixes (#3355) * fix(model): stop sending hidden form.provider as modelFactory on single-add Single-add mode has no provider dropdown — form.provider stays at its hidden default 'modelengine', which was forwarded as modelFactory to the backend, overriding the Pydantic default 'OpenAI-API-Compatible'. Introduced in 4becd6992 which added modelFactory: form.provider to both save paths but missed the isBatchImport guard already present on the suggest-capacity path in the same commit. STT/TTS paths are unaffected — they set modelFactory from form.sttProvider/ttsProvider downstream. Embedding is unaffected — backend _infer_model_factory overrides from base_url. * refactor: move generate_backfill_sql.py to deploy/sql/migrations/ The script's sole purpose is generating SQL migration files that live in deploy/sql/migrations/. Keeping the generator alongside its output is more natural than a standalone top-level scripts/ directory. - Updated _project_root path (three levels up instead of one) - Updated docstring usage path and generated SQL self-reference - Removed empty scripts/ directory * fix: preserve embedding legacy inference, extend VLM only - Embedding/multi_embedding keeps old logic (only dashscope recognized) - VLM uses extended inference so tokenpony URLs can trigger catalog healthcheck - Prevents unintended behavior change for embedding models * fix(ui): reorganize agent config layout - maxSteps+provideSummary on row1, outputReserve+verification on row2 * test(W11): add normalize_model_name, _fuzzy_catalog_match, and Pydantic constructor-audit tests Spec 'Tests and Release Evidence' explicitly requires these three test groups. Previously they were only exercised indirectly through suggest_capacity integration paths. normalize_model_name (14 parametrized cases + convergence test): - Case folding, separator collapsing (dash/underscore/dot/slash/space) - Whitespace trimming, empty string, mixed separators - Catalog entry convergence: full-name variants (GPT-4o/gpt-4o) and final-segment variants (Kimi-K2.6 vs Pro/moonshotai/Kimi-K2.6) _fuzzy_catalog_match (6 cases): - Normalized name match, unique final-segment fallback - Ambiguous final-segment rejection (two entries same final segment) - Empty catalog, wrong provider, unrelated name Pydantic constructor-audit (7 tests, skip when SDK deps unavailable): - CapacitySuggestionFields: model_dump shape pin, all-optional defaults - ModelCapacitySuggestionResponse: catalog_exact shape pin, none shape pin, invalid match_kind rejection - CapacityCoverageBareModel: model_dump shape pin - CapacityCoverageResponse: model_dump shape pin Results: 37 passed, 7 skipped (Pydantic tests skip when consts.model import chain is unavailable due to missing SDK deps). * feat(W11): add capacity suggestion to batch gear modals Add manual check-button capacity suggestion to the two batch per-row gear modals, matching the single-model Add/Edit pattern: ModelAddDialog.tsx (batch-add per-row gear): - Add gear-scoped suggestion state (enabled, checking, suggestion, accepted, request ref for race-condition guard) - Add handleGearSuggestCapacity with monotonic token stale guard - Add applyGearCapacitySuggestion using capacityFormFromSuggestion - Render Switch + Check button toolbar above ModelCapacityFields - Pass suggestion/suggestionLoading/onUseSuggestion/acceptedSuggestion props to ModelCapacityFields - handleSettingsSave writes accepted_suggestion_match_kind and accepted_capability_profile_version audit fields onto the row - Clear suggestion state on gear modal open ModelEditDialog.tsx (ProviderConfigEditDialog per-row gear): - Add modelName/baseUrl props to interface - Add suggestion state, handleSuggestCapacity, applyCapacitySuggestion - Render Switch + Check button in supportsCapacityFields mode only (NOT in bulk-apply / hideCapacityFields mode) - Pass suggestion props to ModelCapacityFields - handleSave spreads accept-signal fields into onSave payload - Add acceptedSuggestionMatchKind/acceptedCapabilityProfileVersion to onSave callback type ModelDeleteDialog.tsx: - Pass modelName and baseUrl from selectedSingleModel to per-model gear ProviderConfigEditDialog (NOT to provider-level invocation) - Forward accepted_suggestion_match_kind and accepted_capability_profile_version in updateBatchModel payload No auto-suggest — manual check button only, per spec. * chore(i18n): remove dead agent.modelSelector.bareCapacity.subtitle key Spec 'Agent-Edit Model Selector Warning' explicitly states V1 dropdown does not render a persistent subtitle. Code only uses .tooltip. Dead key. * fix(W11): pass correct modelName/baseUrl to batch-edit gear suggestion providerModel uses 'id' as model name (not model_name/name), and base_url is provider-level (not on individual model objects). The Check button was always disabled because both resolved to empty string. Fix: - modelName: add selectedSingleModel?.id as fallback - baseUrl: use getProviderBaseUrlByType(deletingModelType) directly * fix(W11): remove emptyHint Alert and i18n keys The 'provider list has no capacity info' Alert is misleading in all contexts: batch-add unchecked models, batch-edit gear with check button, and single-edit with suggestion. Delete the component and both locale keys. * fix(W11): reset suggestion state when switching models in batch-edit gear ProviderConfigEditDialog's useEffect already resets capacityForm on prop change but missed the suggestion state. Adding modelName/baseUrl to deps and resetting capacitySuggestion/acceptedCapacitySuggestion/ enabled/checking on every prop change prevents stale suggestion from the previous model leaking into the next gear dialog. * fix: preserve saved model capacity in batch edit * fix: persist batch gear model config edits * fix: pass provider hint for batch capacity suggestions * refactor: extract useCapacitySuggestion hook to deduplicate suggestion lifecycle Consolidate the /suggest-capacity API call state machine (loading flag, race-condition token, suggestion result, accepted suggestion) that was duplicated across four call sites into a single reusable hook. Call sites refactored: - ModelEditDialog (top-level edit form) - ProviderConfigEditDialog (per-row gear config edit) - ModelAddDialog (top-level add form) - ModelAddDialog (batch gear modal) Net reduction: ~49 lines. No behavioral changes — the monotonic request token, error handling, and state cleanup logic are preserved identically. * refactor: simplify capacity suggestion UI — remove noise tags and localize Remove four low-value elements from the suggestion result panel: - matchExplanation (unlocalized backend English) - matchConfidence tag (high/medium/low) - suggestedProvider tag (internal backend concept) - noExplanation fallback text Keep only what the operator needs: - canonical model name (bold, first position) - match kind (exact/fuzzy, without redundant 'catalog' prefix) - 'Use suggestion' button - fuzzy-match warning when canonical name not accepted When no suggestion is found, show a localized description instead of the generic 'no additional details' fallback. * ♻️ Refactor: Auto-create conversation when conversation_id is empty in agent/run (#3380) * Bugfix:add crypto.randomUUID() fallback in http * Bugfix: Update homepage redirect link * Refactor: Auto-create conversation when conversation_id is empty in agent/run * Bugfix: skip conversation auto-create in debug mode * 修复单元测试 * 新增UT * 新增UT测试 * 修改单元测试 * Feat/opt agent context refactor v2 (#3383) * fix(context): use ContextManager uncompressed baseline for save% metric Previously _last_uncompressed_est was set from input_messages which are already compressed by prepare_step, making est_raw_i always equal est_i and save% structurally ~0%. Now pull the truly-uncompressed token count from ContextManager.get_token_counts()['last_uncompressed'], recorded in compress_if_needed from the raw memory before compression. Co-Authored-By: Claude <noreply@anthropic.com> * chore: expose temp_scripts test harness for cross-machine sync Add test scripts and fixtures used during context-manager refactor development. Only .py and .md files are tracked; .out run artifacts remain ignored via .git/info/exclude. Co-Authored-By: Claude <noreply@anthropic.com> * chore: add .gitignore in temp_scripts to suppress .out/.log artifacts Co-Authored-By: Claude <noreply@anthropic.com> * chore: allow common ops by default, keep rm/mv/git push as ask Co-Authored-By: Claude <noreply@anthropic.com> * refactor: extract SummaryTaskStep and ManagedRunContext into summary_step.py Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com> * refactor: extract pure budget/cache/fingerprint helpers into budget.py Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com> * refactor: extract LLMSummary class into llm_summary.py Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com> * refactor: extract StepRenderer and compress_history_offline into step_renderer.py Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com> * refactor: extract PreviousCompressor into previous_compression.py Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com> * refactor: extract CurrentCompressor into current_compression.py Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com> * refactor: extract compression stats functions into stats_export.py Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com> * refactor: extract ContextManager orchestrator into manager.py Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com> * fix: correct relative import depth for utils.token_estimation The token_estimation module lives at core/utils/, not agents/utils/. From agent_context/ sub-package, three dots (...utils) are needed instead of two (..utils). Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com> * refactor: wire agent_context package with __init__.py re-exports and remove monolith Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com> * refactor: update test loader for agent_context package structure Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com> * refactor: update tests to use standalone functions from decomposed agent_context package Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com> * fix: align extra compression tests with v2 compressor behavior The v2 PreviousCompressor and CurrentCompressor do not fall through from incremental to fresh when LLM returns None - they return PreviousCompressResult/CurrentCompressResult(summary_text=None) immediately. Updated tests P3, C4 to match this behavior. Updated P4 and C6_asymmetry to patch _summarize_pairs with PreviousCompressResult instead of raw tuples. Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com> * fix: correct relative import depth for context_runtime.contracts The context_runtime package lives at core/context_runtime/, not agents/context_runtime/. From agent_context/ sub-package, three dots (...context_runtime) are needed instead of two (..context_runtime). Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com> * chore: untrack temp_scripts and settings.local before PR Co-Authored-By: Claude <noreply@anthropic.com> * chore: restore .claude/settings.local.json to match upstream Co-Authored-By: Claude <noreply@anthropic.com> * test: add coverage for stats_export, step_renderer, and budget modules - New test_stats_export.py: 21 tests covering all pure functions (100%) - New test_step_renderer.py: 24 tests covering truncation, rendering, compress_history_offline with mock LLM (49%→86%) - Extended test_pure_functions.py: tests for _is_context_length_error, has_invoked_tools, message_role, trim_pairs_to_budget (92%→97%) Overall agent_context package coverage: 71% → 81% Co-Authored-By: Claude <noreply@anthropic.com> * test: add llm_summary error-handling and output-format coverage (72%→100%) Co-Authored-By: Claude <noreply@anthropic.com> * test: cover _step_stream uncompressed estimation path in core_agent Adds two tests: - test_step_stream_uses_context_manager_for_uncompressed_est: verifies _last_uncompressed_est is pulled from ContextManager.get_token_counts() - test_step_stream_falls_back_without_context_manager: verifies fallback to msg_token_count when context_manager is None Co-Authored-By: Claude <noreply@anthropic.com> * test: add fingerprint, change detection, and manager utility tests Cover the largest untested blocks in manager.py: - _normalize_for_fingerprint, _fingerprint - _change_reasons, _stable_component_fingerprints - _purpose_messages, _messages_from_memory - _without_leading_stable_messages, _canonical_tools - _estimate_tools_tokens, build_compressed_snapshot - init keep_recent_steps cap, token estimation delegates Manager.py coverage: 69% → 91%, overall: 82% → 92% Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com> * chore: fix SonarCloud issues in test and llm_summary files - test_pure_functions.py: use ValueError instead of generic Exception (S112) - test_step_renderer.py: remove separator comments flagged as code (S125) - llm_summary.py: use logger.exception() in except blocks (S8572) - test_manager_fingerprint.py: replace unused variable with _ (S1481) Co-Authored-By: Claude <noreply@anthropic.com> * refactor: reduce duplication in step_renderer and fix Sonar warnings in compression and test files - Extract _build_offline_user_prompt and _call_model_for_summary helpers from compress_history_offline - Rename unused cache parameter to _cache with alias in current/previous compression (Sonar S1172) - Replace unused idx variables with _ in test_cache_valid (Sonar S1481) - Rename test methods to lowercase convention in test_compress_with_cache_extra (Sonar S100) Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com> --------- Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: liudongfei <liudongfei4@huawei.com> * Enhance image builds and monitoring with no-cache and cleanup (#3344) * Use CCS tag for mainland pushes * Add no-cache support to image builds * Revamp rollout checksums for env and image changes * Add root build wrapper for image and package builds * Sync monitoring defaults and env generation * Harden monitoring deploy and uninstall cleanup * Unify monitoring provider handling in deploy scripts * Clean up stale monitoring services during deployment * Restrict monitoring dashboard to superusers * Restrict monitoring dashboard to superusers * Relocate monitoring env files to deploy/env * Unify monitoring env handling for deploys * Show image tag examples in deployment source selector * 同步修改文档 * Refactor agent generation workflow * Add interactive deploy config mode * Enable default config mode in offline deploy wrapper * Stop persisting appVersion in deployment config * Add defaults mode to deploy wrappers --------- Co-authored-by: root <root@DESKTOP-UARO3HF.localdomain> Co-authored-by: hhhhsc <name> * feat(ragflow): add RAGFlow search tool (#3378) * Release/v2.2.1 (#3269) * add_greeting_fields_to_agent-develop * feat(knowledge-base): add preserve_source_file and post-index source cleanup Let knowledge bases opt out of keeping uploaded MinIO copies after indexing while retaining Elasticsearch chunks for retrieval. Default behavior remains preserve_source_file=true for backward compatibility. - Add preserve_source_file column (init.sql + v2.2.0_0601 migration) - Accept preserve_source_file on create/update and northbound/vector APIs - Support document DELETE scope=source_only and source_available in listings - Run cleanup_source Celery task when preserve_source_file is false - UI: create-KB toggle, list tag, knowledge-base preview when copy is missing - Update vector-database SDK docs and backend tests * test(data_process): stub knowledge_db, redis_service, and redis in test_worker Align setup_mocks_for_worker with test_tasks so importing backend.data_process.worker loads package __init__ without real DB/redis deps. * test(data_process): shim cleanup_source for submit_process_forward_chain tests * remove duplicate import * fix: update unit tests for greeting_message and example_questions fields * add init.sql to sonar.properites * ♻️ Improvement: API to MCP conversion service supports configuring headers. (#3194) * ♻️ Improvement: API to MCP conversion service supports configuring headers. [Specification Details] 1. Front-end and back-end modifications * ♻️ Improvement: API to MCP conversion service supports configuring headers. [Specification Details] 1. Modify the frontend, after adding, set the HTTP headers to empty. 2. Modify test cases. * ♻️ Improvement: Enhance processing of ES index names in memory banks. (#3196) [Specification Details] 1. Replace all symbols in the index name that do not meet the rules with "_". 2. Modify test cases. * feat: add active memory tools (StoreMemoryTool, SearchMemoryTool) (#3197) - Implement StoreMemoryTool for explicit memory storage during agent reasoning - Implement SearchMemoryTool for on-demand memory retrieval during conversations - Integrate tools into agent creation flow (create_agent_info.py) - Register tools in nexent_agent.py and tools/__init__.py - Add MEMORY_OPERATION tool sign for proper categorization - Fix memory_core.py cache key to include event loop ID (prevents cross-loop conflicts) - Add comprehensive test coverage for both tools - Add procedural memory verification documentation Tools follow existing patterns: lazy imports, observer integration, error handling, and respect user memory preferences (agent_share_option, disabled_agent_ids). Co-authored-by: Dallas98 <40557804+Dallas98@users.noreply.github.com> * 🐛 Bugfix: skill names and descriptions never load to context (#3205) * 🐛 Bugfix: skill names and descriptions never load to context * 🐛 Bugfix: skill names and descriptions never load to context * 🐛 Bugfix: skill names and descriptions never load to context * 🐛 Bugfix: official skills not copied to target directory * 🐛 Bugfix: official skills not copied to target directory * Feat: add selected count badges to tool/skill pool labels (#3206) Co-authored-by: chase <byzhangxin11@126.com> * 🐛 Bugfix: Fix attribution error when tool calling error (#3208) * ✨ Feat: Add support for Word document generation, preview, and download (#3191) * Feat: Add support for Word document generation, preview, and download * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * Restrict uploads to a known safe workspace/output directory * 修改单元测试 * 修复单元测试 * Bugfix: Store uploaded files in Minio for conversation messages to enable file visibility in history --------- Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * ✨Feat:Enhance prompt optimization by integrating openjiuwen and fix related bugs (#3190) * ✨Feat:add prompt optimization * 🐛Bugfix: dockerbuild failed when running pipefail in python3_11 * 🔨Optimize: Optimize prompt optimization display page and interaction methods * 🐛Bugfix: fix dependencies replication * 🎨:Optimize frontend prompts and loading interface * 🔧 Refactor: Update imports and remove redundant ENABLE_JIUWEN_SDK import in prompt_service.py * 🔧 Refactor: Correct import path for NexentCapabilityError and enhance test coverage for prompt optimization service * 🔧 Refactor: Update import paths for exception handling and improve logging formatting in prompt_service.py * 🔧 Refactor: Simplify lazy imports in jiuwen_sdk_adapter.py and update import paths in prompt_service.py * 🔧 Refactor: Enhance Jiuwen SDK adapter handling and improve test stubs in prompt_service.py and related test files * 🧪test:Pydantic model for PromptTemplateRequest in test_prompt_template_app.py * 🔧 Refactor: Remove unnecessary dependency exclusions from pyproject.toml * 🔧 Update: Upgrade huggingface_hub dependency version in pyproject.toml * 🔧 Update: Exclude unnecessary transitive dependencies and adjust huggingface_hub version in pyproject.toml * 🔧 Test: Add mock modules for unstructured inference and set up package paths in test files * 🔧 Test: Enhance test setup by adding optional SDK mocks and cleaning up module imports in data processing tests * 🔧 Test: Consolidate mock module setup for unstructured inference across multiple test files * 🔧 Test: Remove unused optional SDK mocks from test configuration * 🔧 Refactor: Clean up imports and enhance dynamic loading of fastmcp components in Docker client * 📦update:sdk dependence update * Add CAS SSO integration and improve logout handling (#3072) * feat: add CAS SSO integration * Skip CAS logout when CAS_LOGOUT_URL is unset * 取消转义 * Improve CAS logout handling and confirm user logout * Disable account deletion for CAS users * Add CAS session init SQL and k8s config * clean code * Remove agent guardrails design doc from tracking * 补充文档 --------- Co-authored-by: hhhhsc <name> * 🐛Bugfix: Remove unnecessary dependency exclusions and upgrade huggingface_hub version in pyproject.toml (#3211) * refactor: move current time from system prompt to user message for prompt cache stability (#3203) Remove {{time}} from all 4 prompt YAML templates (manager/managed × en/zh) and strip time_str from the context_utils pipeline (_format_app_context, build_skeleton_header_component, build_context_components, build_app_context_string). Also remove time from create_agent_info render kwargs and build_context_components call. In CoreAgent.run, prepend [Current time: ...] to self.task so the timestamp travels with the user message instead of being baked into the system prompt. This makes the rendered system prompt fully deterministic per (agent_id, tenant_id, version_no, language) — enabling prompt/KV cache hits across requests for the same agent config. Sync test_context_utils.py: drop time_str= from 3 test cases. Remove unused datetime imports from context_utils.py and create_agent_info.py. * 🐛 Bugfix: Fixed the issue of being unable to add MCP services via containerization. (#3213) [Specification Details] 1. Modify the DEFAULT_NETWORK_NAME when starting the MCP service in the container to match the name in docker-compose. 2. Modify the parameters passed to the add_mcp_service method; custom_headers defaults to None. * 🐛 Bugfix: Fixed the issue where uploaded text files could not be parsed during a session. (#3219) * 🐛 Bugfix: Fixed the issue where uploaded text files could not be parsed during a session. [Specification Details] 1. The return parameter of the file_process method has changed and needs to be unpacked. * 🐛 Bugfix: Fixed the issue where uploaded text files could not be parsed during a session. [Specification Details] 1. Modify test case. * 🐛 Bugfix: Fixed an issue where the MCP service could not be added correctly after updating the FastMCP version. (#3222) [Specification Details] 1. Add `kwargs` to the `create_httpx_client` function to accept all additional parameters. * 🐛 Bugfix: Fix incomplete display of tenant resources page after window resize (#3215) * Move non-shadcn ui component to other folder * Bugfix: Fix incomplete display of tenant resources page after window resize * Bugfix: Fix incomplete display of tenant resources page after window resize * Add agent marketplace repository and version pinning for sub-agents (#3239) * feat: add agent marketplace repository and pin sub-agent versions at publish Introduce ag_agent_repository_t with list/status/publish/import APIs for frozen agent snapshots. Pin selected_agent_version_no on agent relations when publishing so sub-agents resolve to a fixed version at runtime. Extend agent export/import to bundle skills in ZIP payloads and add embedding model fallback when no model name is provided. * feat: add agent marketplace repository and pin sub-agent versions at publish Introduce ag_agent_repository_t with list/status/publish/import APIs for frozen agent snapshots. Pin selected_agent_version_no on agent relations when publishing so sub-agents resolve to a fixed version at runtime. Extend agent export/import to bundle skills in ZIP payloads and add embedding model fallback when no model name is provided. * feat: add agent marketplace repository and pin sub-agent versions at publish Introduce ag_agent_repository_t with list/status/publish/import APIs for frozen agent snapshots. Pin selected_agent_version_no on agent relations when publishing so sub-agents resolve to a fixed version at runtime. Extend agent export/import to bundle skills in ZIP payloads and add embedding model fallback when no model name is provided. * feat: add agent marketplace repository and pin sub-agent versions at publish Introduce ag_agent_repository_t with list/status/publish/import APIs for frozen agent snapshots. Pin selected_agent_version_no on agent relations when publishing so sub-agents resolve to a fixed version at runtime. Extend agent export/import to bundle skills in ZIP payloads and add embedding model fallback when no model name is provided. * feat(agent): add verification configuration for agents and update related components (#3174) * feat(agent): add verification configuration for agents and update related components * feat(model): update model type labels and add monitoring dashboard translations * 🐛 Bugfix: Fix inability to select agent from agent space to edit (#3240) * Move non-shadcn ui component to other folder * Bugfix: Fix incomplete display of tenant resources page after window resize * Bugfix: Fix incomplete display of tenant resources page after window resize * Bugfix: Fix inability to select agent from agent space to edit * Bugfix: Display correct version info when viewing agent details * Update data agent and ME CAS integration documentation (#3242) * 补充dataagent对接文档 * 补充ME cas对接文档 * 补充ME cas对接文档 --------- Co-authored-by: hhhhsc <name> * ✨ Add several northbound apis (#3223) * ✨ Add several northbound apis * ✨ Add several northbound apis * ✨ Add several northbound apis * ✨ Add several northbound apis * ✨ Add several northbound apis * refactor: simplify deployment script by removing unused variables and functions (#3245) * feat(agent): add verification configuration for agents and update related components * feat(model): update model type labels and add monitoring dashboard translations * refactor(build_offline_package): simplify deployment script by removing unused variables and functions * 🐛 Bugfix: Adjust agent detail UI layout to accommodate newly added "self-verification" field (#3246) * Move non-shadcn ui component to other folder * Bugfix: Fix incomplete display of tenant resources page after window resize * Bugfix: Fix incomplete display of tenant resources page after window resize * Bugfix: Fix inability to select agent from agent space to edit * Bugfix: Display correct version info when viewing agent details * Bugfix: Adjust agent detail UI layout to accommodate newly added "self-verification" field * 补充sql (#3248) * 补充sql * 扩大limit限制 * 🐛 Bugfix: Fixed an issue where the MCP service failed to start in a Kubernetes container. (#3254) [Specification Details] 1. Modify the pod naming logic to convert all non-compliant characters to -. 2. Modify test cases. * 🐛 Bugfix: knowledge_base_search_tool called with TypeError: argument of type 'FieldInfo' is not iterable (#3259) * 🐛 Bugfix: Fixed an issue where the one-click rename function failed after importing an agent. (#3258) [Specification Details] 1. The frontend does not pass `agent_id` when calling the `regenerate_name` API. * Bugfix: Exclude attachments from assistant when saving conversation history (#3261) * Bump APP_VERSION from v2.2.0 to v2.2.1 (#3268) The default setting for client-side self-validation is "False". --------- Co-authored-by: chase <byzhangxin11@126.com> Co-authored-by: Chenlifeng <174292121+Lifeng-Chen@users.noreply.github.com> Co-authored-by: Dallas98 <40557804+Dallas98@users.noreply.github.com> Co-authored-by: Jason Wang <56037774+JasonW404@users.noreply.github.com> Co-authored-by: Xia Yichen <iamjasonxia@126.com> Co-authored-by: JeffWu <45140512+jeffwu-1999@users.noreply.github.com> Co-authored-by: WMC001 <46217886+WMC001@users.noreply.github.com> Co-authored-by: xuyaqi <xuyaqist@gmail.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Co-authored-by: DongJiBao2001 <120021235+DongJiBao2001@users.noreply.github.com> Co-authored-by: hhhhsc701 <56435672+hhhhsc701@users.noreply.github.com> Co-authored-by: Dallas98 <990259227@qq.com> Co-authored-by: frr <64584192+wuyuanfr@users.noreply.github.com> * Revert "Release/v2.2.1 (#3269)" (#3272) This reverts commit 9ff420ecce6b2ca21a67ce51053205860a76e41a. * feat(ragflow): add RAGFlow search tool - Add RAGFlowSearchTool SDK with list/str compatibility for dataset_ids and doc_id - Add backend ragflow_service and ragflow_app endpoints - Add frontend KB selector support for ragflow in ToolConfigModal and ToolTestPanel - Fix KB selection clearing when switching between tools - Fix missing inputs field in searchAgentInfo tool mapping - Clean up incorrect configParams fallback in ToolTestPanel * test(ragflow): add unit tests for RAGFlow search tool and service Add 90 tests across 4 files covering ragflow_search_tool, ragflow_service, nexent_agent RAGFlowSearchTool branch, and tool_configuration_service ragflow_search validation. Co-Authored-By: Claude <noreply@anthropic.com> * test(ragflow): fix SonarCloud issues - Add docstring to _MockTool.__init__ - Replace float == with pytest.approx() - Remove type hint from mock_observer fixture - Remove commented code - Add type: ignore for _validate_ragflow_config edge cases Co-Authored-By: Claude <noreply@anthropic.com> --------- Co-authored-by: panyehong <91180085+YehongPan@users.noreply.github.com> Co-authored-by: chase <byzhangxin11@126.com> Co-authored-by: Chenlifeng <174292121+Lifeng-Chen@users.noreply.github.com> Co-authored-by: Dallas98 <40557804+Dallas98@users.noreply.github.com> Co-authored-by: Jason Wang <56037774+JasonW404@users.noreply.github.com> Co-authored-by: Xia Yichen <iamjasonxia@126.com> Co-authored-by: JeffWu <45140512+jeffwu-1999@users.noreply.github.com> Co-authored-by: WMC001 <46217886+WMC001@users.noreply.github.com> Co-authored-by: xuyaqi <xuyaqist@gmail.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Co-authored-by: DongJiBao2001 <120021235+DongJiBao2001@users.noreply.github.com> Co-authored-by: hhhhsc701 <56435672+hhhhsc701@users.noreply.github.com> Co-authored-by: Dallas98 <990259227@qq.com> Co-authored-by: frr <64584192+wuyuanfr@users.noreply.github.com> Co-authored-by: Claude <noreply@anthropic.com> * ♻️ Skill now can read files directly with relative path (#3384) * 🐛 Bugfix: remove irrational fallback index logic when accurate retrieved results not appeared in semantic retrieved results ♻️ Skill now can read files directly with relative path * 🐛 Bugfix: remove irrational fallback index logic when accurate retrieved results not appeared in semantic retrieved results ♻️ Skill now can read files directly with relative path * 🐛 Bugfix: remove irrational fallback index logic when accurate retrieved results not appeared in semantic retrieved results ♻️ Skill now can read files directly with relative path * 🧪 Add unit test * Add image registry prefix support and optimize offline deployment (#3388) * Add image registry prefix support to offline deployment * Add image registry prefix support to offline deployment * 优化构建包 * Support source-suffixed offline packages and configurable init image * k8s部分参数落盘 * clean code --------- Co-authored-by: hhhhsc <name> * feat(agent-repository): remove categories and allow custom emoji icons (#3367) * Release/v2.2.1 (#3269) * add_greeting_fields_to_agent-develop * feat(knowledge-base): add preserve_source_file and post-index source cleanup Let knowledge bases opt out of keeping uploaded MinIO copies after indexing while retaining Elasticsearch chunks for retrieval. Default behavior remains preserve_source_file=true for backward compatibility. - Add preserve_source_file column (init.sql + v2.2.0_0601 migration) - Accept preserve_source_file on create/update and northbound/vector APIs - Support document DELETE scope=source_only and source_available in listings - Run cleanup_source Celery task when preserve_source_file is false - UI: create-KB toggle, list tag, knowledge-base preview when copy is missing - Update vector-database SDK docs and backend tests * test(data_process): stub knowledge_db, redis_service, and redis in test_worker Align setup_mocks_for_worker with test_tasks so importing backend.data_process.worker loads package __init__ without real DB/redis deps. * test(data_process): shim cleanup_source for submit_process_forward_chain tests * remove duplicate import * fix: update unit tests for greeting_message and example_questions fields * add init.sql to sonar.properites * ♻️ Improvement: API to MCP conversion service supports configuring headers. (#3194) * ♻️ Improvement: API to MCP conversion service supports configuring headers. [Specification Details] 1. Front-end and back-end modifications * ♻️ Improvement: API to MCP conversion service supports configuring headers. [Specification Details] 1. Modify the frontend, after adding, set the HTTP headers to empty. 2. Modify test cases. * ♻️ Improvement: Enhance processing of ES index names in memory banks. (#3196) [Specification Details] 1. Replace all symbols in the index name that do not meet the rules with "_". 2. Modify test cases. * feat: add active memory tools (StoreMemoryTool, SearchMemoryTool) (#3197) - Implement StoreMemoryTool for explicit memory storage during agent reasoning - Implement SearchMemoryTool for on-demand memory retrieval during conversations - Integrate tools into agent creation flow (create_agent_info.py) - Register tools in nexent_agent.py and tools/__init__.py - Add MEMORY_OPERATION tool sign for proper categorization - Fix memory_core.py cache key to include event loop ID (prevents cross-loop conflicts) - Add comprehensive test coverage for both tools - Add procedural memory verification documentation Tools follow existing patterns: lazy imports, observer integration, error handling, and respect user memory preferences (agent_share_option, disabled_agent_ids). Co-authored-by: Dallas98 <40557804+Dallas98@users.noreply.github.com> * 🐛 Bugfix: skill names and descriptions never load to context (#3205) * 🐛 Bugfix: skill names and descriptions never load to context * 🐛 Bugfix: skill names and descriptions never load to context * 🐛 Bugfix: skill names and descriptions never load to context * 🐛 Bugfix: official skills not copied to target directory * 🐛 Bugfix: official skills not copied to target directory * Feat: add selected count badges to tool/skill pool labels (#3206) Co-authored-by: chase <byzhangxin11@126.com> * 🐛 Bugfix: Fix attribution error when tool calling error (#3208) * ✨ Feat: Add support for Word document generation, preview, and download (#3191) * Feat: Add support for Word document generation, preview, and download * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * Restrict uploads to a known safe workspace/output directory * 修改单元测试 * 修复单元测试 * Bugfix: Store uploaded files in Minio for conversation messages to enable file visibility in history --------- Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * ✨Feat:Enhance prompt optimization by integrating openjiuwen and fix related bugs (#3190) * ✨Feat:add prompt optimization * 🐛Bugfix: dockerbuild failed when running pipefail in python3_11 * 🔨Optimize: Optimize prompt optimization display page and interaction methods * 🐛Bugfix: fix dependencies replication * 🎨:Optimize frontend prompts and loading interface * 🔧 Refactor: Update imports and remove redundant ENABLE_JIUWEN_SDK import in prompt_service.py * 🔧 Refactor: Correct import path for NexentCapabilityError and enhance test coverage for prompt optimization service * 🔧 Refactor: Update import paths for exception handling and improve logging formatting in prompt_service.py * 🔧 Refactor: Simplify lazy imports in jiuwen_sdk_adapter.py and update import paths in prompt_service.py * 🔧 Refactor: Enhance Jiuwen SDK adapter handling and improve test stubs in prompt_service.py and related test files * 🧪test:Pydantic model for PromptTemplateRequest in test_prompt_template_app.py * 🔧 Refactor: Remove unnecessary dependency exclusions from pyproject.toml * 🔧 Update: Upgrade huggingface_hub dependency version in pyproject.toml * 🔧 Update: Exclude unnecessary transitive dependencies and adjust huggingface_hub version in pyproject.toml * 🔧 Test: Add mock modules for unstructured inference and set up package paths in test files * 🔧 Test: Enhance test setup by adding optional SDK mocks and cleaning up module imports in data processing tests * 🔧 Test: Consolidate mock module setup for unstructured inference across multiple test files * 🔧 Test: Remove unused optional SDK mocks from test configuration * 🔧 Refactor: Clean up imports and enhance dynamic loading of fastmcp components in Docker client * 📦update:sdk dependence update * Add CAS SSO integration and improve logout handling (#3072) * feat: add CAS SSO integration * Skip CAS logout when CAS_LOGOUT_URL is unset * 取消转义 * Improve CAS logout handling and confirm user logout * Disable account deletion for CAS users * Add CAS session init SQL and k8s config * clean code * Remove agent guardrails design doc from tracking * 补充文档 --------- Co-authored-by: hhhhsc <name> * 🐛Bugfix: Remove unnecessary dependency exclusions and upgrade huggingface_hub version in pyproject.toml (#3211) * refactor: move current time from system prompt to user message for prompt cache stability (#3203) Remove {{time}} from all 4 prompt YAML templates (manager/managed × en/zh) and strip time_str from the context_utils pipeline (_format_app_context, build_skeleton_header_component, build_context_components, build_app_context_string). Also remove time from create_agent_info render kwargs and build_context_components call. In CoreAgent.run, prepend [Current time: ...] to self.task so the timestamp travels with the user message instead of being baked into the system prompt. This makes the rendered system prompt fully deterministic per (agent_id, tenant_id, version_no, language) — enabling prompt/KV cache hits across requests for the same agent config. Sync test_context_utils.py: drop time_str= from 3 test cases. Remove unused datetime imports from context_utils.py and create_agent_info.py. * 🐛 Bugfix: Fixed the issue of being unable to add MCP services via containerization. (#3213) [Specification Details] 1. Modify the DEFAULT_NETWORK_NAME when starting the MCP service in the container to match the name in docker-compose. 2. Modify the parameters passed to the add_mcp_service method; custom_headers defaults to None. * 🐛 Bugfix: Fixed the issue where uploaded text files could not be parsed during a session. (#3219) * 🐛 Bugfix: Fixed the issue where uploaded text files could not be parsed during a session. [Specification Details] 1. The return parameter of the file_process method has changed and needs to be unpacked. * 🐛 Bugfix: Fixed the issue where uploaded text files could not be parsed during a session. [Specification Details] 1. Modify test case. * 🐛 Bugfix: Fixed an issue where the MCP service could not be added correctly after updating the FastMCP version. (#3222) [Specification Details] 1. Add `kwargs` to the `create_httpx_client` function to accept all additional parameters. * 🐛 Bugfix: Fix incomplete display of tenant resources page after window resize (#3215) * Move non-shadcn ui component to other folder * Bugfix: Fix incomplete display of tenant resources page after window resize * Bugfix: Fix incomplete display of tenant resources page after window resize * Add agent marketplace repository and version pinning for sub-agents (#3239) * feat: add agent marketplace repository and pin sub-agent versions at publish Introduce ag_agent_repository_t with list/status/publish/import APIs for frozen agent snapshots. Pin selected_agent_version_no on agent relations when publishing so sub-agents resolve to a fixed version at runtime. Extend agent export/import to bundle skills in ZIP payloads and add embedding model fallback when no model name is provided. * feat: add agent marketplace repository and pin sub-agent versions at publish Introduce ag_agent_repository_t with list/status/publish/import APIs for frozen agent snapshots. Pin selected_agent_version_no on agent relations when publishing so sub-agents resolve to a fixed version at runtime. Extend agent export/import to bundle skills in ZIP payloads and add embedding model fallback when no model name is provided. * feat: add agent marketplace repository and pin sub-agent versions at publish Introduce ag_agent_repository_t with list/status/publish/import APIs for frozen agent snapshots. Pin selected_agent_version_no on agent relations when publishing so sub-agents resolve to a fixed version at runtime. Extend agent export/import to bundle skills in ZIP payloads and add embedding model fallback when no model name is provided. * feat: add agent marketplace repository and pin sub-agent versions at publish Introduce ag_agent_repository_t with list/status/publish/import APIs for frozen agent snapshots. Pin selected_agent_version_no on agent relations when publishing so sub-agents resolve to a fixed version at runtime. Extend agent export/import to bundle skills in ZIP payloads and add embedding model fallback when no model name is provided. * feat(agent): add verification configuration for agents and update related components (#3174) * feat(agent): add verification configuration for agents and update related components * feat(model): update model type labels and add monitoring dashboard translations * 🐛 Bugfix: Fix inability to select agent from agent space to edit (#3240) * Move non-shadcn ui component to other folder * Bugfix: Fix incomplete display of tenant resources page after window resize * Bugfix: Fix incomplete display of tenant resources page after window resize * Bugfix: Fix inability to select agent from agent space to edit * Bugfix: Display correct version info when viewing agent details * Update data agent and ME CAS integration documentation (#3242) * 补充dataagent对接文档 * 补充ME cas对接文档 * 补充ME cas对接文档 --------- Co-authored-by: hhhhsc <name> * ✨ Add several northbound apis (#3223) * ✨ Add several northbound apis * ✨ Add several northbound apis * ✨ Add several northbound apis * ✨ Add several northbound apis * ✨ Add several northbound apis * refactor: simplify deployment script by removing unused variables and functions (#3245) * feat(agent): add verification configuration for agents and update related components * feat(model): update model type labels and add monitoring dashboard translations * refactor(build_offline_package): simplify deployment script by removing unused variables and functions * 🐛 Bugfix: Adjust agent detail UI layout to accommodate newly added "self-verification" field (#3246) * Move non-shadcn ui component to other folder * Bugfix: Fix incomplete display of tenant resources page after window resize * Bugfix: Fix incomplete display of tenant resources page after window resize * Bugfix: Fix inability to select agent from agent space to edit * Bugfix: Display correct version info when viewing agent details * Bugfix: Adjust agent detail UI layout to accommodate newly added "self-verification" field * 补充sql (#3248) * 补充sql * 扩大limit限制 * 🐛 Bugfix: Fixed an issue where the MCP service failed to start in a Kubernetes container. (#3254) [Specification Details] 1. Modify the pod naming logic to convert all non-compliant characters to -. 2. Modify test cases. * 🐛 Bugfix: knowledge_base_search_tool called with TypeError: argument of type 'FieldInfo' is not iterable (#3259) * 🐛 Bugfix: Fixed an issue where the one-click rename function failed after importing an agent. (#3258) [Specification Details] 1. The frontend does not pass `agent_id` when calling the `regenerate_name` API. * Bugfix: Exclude attachments from assistant when saving conversation history (#3261) * Bump APP_VERSION from v2.2.0 to v2.2.1 (#3268) The default setting for client-side self-validation is "False". --------- Co-authored-by: chase <byzhangxin11@126.com> Co-authored-by: Chenlifeng <174292121+Lifeng-Chen@users.noreply.github.com> Co-authored-by: Dallas98 <40557804+Dallas98@users.noreply.github.com> Co-authored-by: Jason Wang <56037774+JasonW404@users.noreply.github.com> Co-authored-by: Xia Yichen <iamjasonxia@126.com> Co-authored-by: JeffWu <45140512+jeffwu-1999@users.noreply.github.com> Co-authored-by: WMC001 <46217886+WMC001@users.noreply.github.com> Co-authored-by: xuyaqi <xuyaqist@gmail.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Co-authored-by: DongJiBao2001 <120021235+DongJiBao2001@users.noreply.github.com> Co-authored-by: hhhhsc701 <56435672+hhhhsc701@users.noreply.github.com> Co-authored-by: Dallas98 <990259227@qq.com> Co-authored-by: frr <64584192+wuyuanfr@users.noreply.github.com> * Revert "Release/v2.2.1 (#3269)" (#3272) This reverts commit 9ff420ecce6b2ca21a67ce51053205860a76e41a. * feat(agent-repository): remove categories and allow custom emoji icons * feat(agent-space): improve mine tab UX with delete, navigation, and author display - Add delete action for agents in mine tab with confirmation modal - Navigate back to agent repository when editing from agent-space - Persist agent-space tab state via URL query params (?tab=mine) - Display author in repository detail modal and map author field - Auto-fill agent author from user email on create - Adjust agents page header layout to accommodate back button * fix conflict * fix conflict * fix: delete test ts file --------- Co-authored-by: panyehong <91180085+YehongPan@users.noreply.github.com> Co-authored-by: chase <byzhangxin11@126.com> Co-authored-by: Dallas98 <40557804+Dallas98@users.noreply.github.com> Co-authored-by: Jason Wang <56037774+JasonW404@users.noreply.github.com> Co-authored-by: Xia Yichen <iamjasonxia@126.com> Co-authored-by: JeffWu <45140512+jeffwu-1999@users.noreply.github.com> Co-authored-by: WMC001 <46217886+WMC001@users.noreply.github.com> Co-authored-by: xuyaqi <xuyaqist@gmail.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Co-authored-by: DongJiBao2001 <120021235+DongJiBao2001@users.noreply.github.com> Co-authored-by: hhhhsc701 <56435672+hhhhsc701@users.noreply.github.com> Co-authored-by: Dallas98 <990259227@qq.com> Co-authored-by: frr <64584192+wuyuanfr@users.noreply.github.com> * 🐛Bugfix: Fix responsive layout issues on knowledge base page (#3381) * 🐛 BugFix: show name conflict error inline in knowledge base input (#3251) Show error message inline below input when KB name already exists, instead of relying on input status alone. Closes #3251. - Add nameStatus state + AlertCircle icon + error text - Change title bar alignment from items-center to items-start - Pass nameStatus from UploadArea to DocumentList via prop * 🐛 BugFix: Improve responsive layout of knowledge base creation page (#3251) * fix: improve responsive layout and prevent overflow in knowledge base components * 🐛 Bugfix: Fixed an issue with tools relying on large models: previously, if a model was selected and subsequently deleted, the agent would encounter runtime errors without any corresponding notification on the frontend. (#3397) * 🐛 Bugfix: Fixed an issue where deleted models could still be selected during debugging. + Internationalization loading description of tools. * 🐛 Bugfix: Fixed an issue with tools relying on large models: previously, if a model was selected and subsequently deleted, the agent would encounter runtime errors without any corresponding notification on the frontend. * Disable context component budget pruning (#3394) * 🐛Bugfix: Persist conversation agent and verify jwt expiry (#3392) * fix: persist conversation agent and verify jwt expiry * test: cover conversation agent and jwt expiry changes * fix: refresh published agents after deletion * 11 * ♻️ Refactor: Remove the limit on the maximum number of execution steps for the agent. (#3400) * ♻️ Refactor: Remove the limit on the maximum number of execution steps for the agent. * ♻️ Refactor: Remove the limit on the maximum number of execution steps for the agent. * ♻️ Refactor: Remove the limit on the maximum number of execution steps for the agent. * fix context manager builtin tool context (#3401) * 支持web config runtime northbound多副本 (#3390) * feat: 支持web config runtime northbound多副本 * Use ReadWriteMany for Kubernetes persistence defaults * Normalize PR diff line endings * fix: 修复单测 * Fix agent service unit test mocks * feat: 默认单实例 * feat: 补充单测 * feat: 补充单测 * feat: enhance deployment options persistence and loading mechanism * feat: remove multi-replica mode references and improve error logging in northbound service --------- Co-authored-by: root <root@DESKTOP-UARO3HF.localdomain> * ✨ Feature: add skill repository lifecycle and management UI (#3393) * Add skill repository backend APIs * Add skill repository frontend flow * Refine skill repository build UI * feat: add skill edit modal state * feat: improve skill repository copy, edit, and review flows * feat: refine agent config skill management * test: add skill repository coverage and remove dead code * fix: harden skill editing and repository workflow * fix: address skill repository quality gates * fix: correct skill path validation * fix: stabilize skill path test setup * test: cover skill update by id workflow * fix: resolve skill repository quality gate issues * fix: test --------- Co-authored-by: sumi2234 <sumi2234@noreply.atomgit.com> * Add OAuth login mode config and forced redirect handling (#3414) Co-authored-by: root <root@DESKTOP-UARO3HF.localdomain> * ✨ Feature: MCP market restructure — Repository, My MCPs, Review Center (#3396) * mcp web * mcp web * mcp web * mcp web * mcp web * mcp web * delete version * delete version * local mirror * 修复工具验证问题以及工具数量显示问题 * 增加自定义外部市场mcp名称功能; 增加mcp重复命名检查; * 增加工具数量更新功能 * 增加工具数量更新功能 * 修复仓库的工具数量显示问题; 修复mcp删除bug * “我的”mcp“申请上架”逻辑问题 * 修复“我的”mcp开发者显示问题; 修复mcp删除后没有同步到智能体开发mcp列表问题; * 修复删除mcp未初始化mcp启用状态的问题 * 修复市场下载的mcp作者显示问题 * 外部市场mcp连通性校验 * 添加MCP服务按钮修改 * 修复仓库下载的mcp不显示hub的问题 * 删除smithery mcp市场 * 修复通过镜像上传mcp不显示工具数量问题 * 修复mcp来源显示错误 * 修复审核中心标签数字显示问题 * mcp市场“仓库”页面和“我的”页面权限调整:仓库页面为租户内共享,我的页面为用户个人使用; 增加表格迁移; * Update settings.local.json * Delete MCP_MARKET_FRONTEND_BACKEND_MAPPING.md * 更新测试用例 * fix test case * Quality Gate * Quality Gate * test case * 前端修改 * 审核机制及表设计按照agent仓库修改 * 审核机制及表设计按照agent仓库修改 * test cases * test cases * test cases * test cases * 🐛 Bugfix: Fix skill count display error when delete a skill has been selected (#3415) * feat: move /owner-manage left-nav from ASSET_OWNER to SU, add index chunks listing and hybrid search endpoints(#3416) * feat: move /owner-manage left-nav from ASSET_OWNER to SU, add index chunks listing and hybrid search endpoints * feat: move /owner-manage left-nav from ASSET_OWNER to SU, add index chunks listing and hybrid search endpoints * feat: move /owner-manage left-nav from ASSET_OWNER to SU, add index chunks listing and hybrid search endpoints * Bump version from v2.2.2 to v2.3.0 * 🐛 Bugfix: update skill repository action wording (#3418) * fix: update skill repository action wording * fix: update skill repository action wording * fix: internationalize skill repository UI * fix: remove duplicate skill locale keys (#3423) * fix: Clean up leftover file (#3421) * mcp web * mcp web * mcp web * mcp web * mcp web * mcp web * delete version * delete version * local mirror * 修复工具验证问题以及工具数量显示问题 * 增加自定义外部市场mcp名称功能; 增加mcp重复命名检查; * 增加工具数量更新功能 * 增加工具数量更新功能 * 修复仓库的工具数量显示问题; 修复mcp删除bug * “我的”mcp“申请上架”逻辑问题 * 修复“我的”mcp开发者显示问题; 修复mcp删除后没有同步到智能体开发mcp列表问题; * 修复删除mcp未初始化mcp启用状态的问题 * 修复市场下载的mcp作者显示问题 * 外部市场mcp连通性校验 * 添加MCP服务按钮修改 * 修复仓库下载的mcp不显示hub的问题 * 删除smithery mcp市场 * 修复通过镜像上传mcp不显示工具数量问题 * 修复mcp来源显示错误 * 修复审核中心标签数字显示问题 * mcp市场“仓库”页面和“我的”页面权限调整:仓库页面为租户内共享,我的页面为用户个人使用; 增加表格迁移; * Update settings.local.json * Delete MCP_MARKET_FRONTEND_BACKEND_MAPPING.md * 更新测试用例 * fix test case * Quality Gate * Quality Gate * test case * 前端修改 * 审核机制及表设计按照agent仓库修改 * 审核机制及表设计按照agent仓库修改 * test cases * test cases * test cases * test cases * bug fix * Delete k8s/helm/nexent/charts/nexent-common/files/init.sql * Bugfix: Disable Supabase auto refrsh token, restrict token refresh requests to frontend only (#3422) * Bugfix:add crypto.randomUUID() fallback in http * Bugfix: Update homepage redirect link * Refactor: Auto-create conversation when conversation_id is empty in agent/run * Bugfix: skip conversation auto-create in debug mode * 修复单元测试 * 新增UT * 新增UT测试 * 修改单元测试 * Bugfix: Disable Supabase auto refrsh token, restrict token refresh requests to frontend only * Revert "Bugfix: Disable Supabase auto refrsh token, restrict token refresh requests to frontend only" This reverts commit fb7a2934a5bd6cce111f6b349b8190f52b177e04. * Bugfix: Disable Supabase auto refrsh token, restrict token refresh requests to frontend only * 🐛 Fix sequence OWNED BY before table creation in migration v2.3.0_0709 (#3424) * Fix agent skill unselect persistence (#3426) * fix: MCP space - api and frontend bug fixes (#3427) * Fix: remove mcp version number (#3429) * feat: remove version number field from MCP edit modal Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * 🐛 Fix: remove version badge from review center detail modal Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * 🐛 Fix: add missing English translations for MCP page Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com> * fix: skill summary (#3430) * fix skill creation stream parsing * fix copied skill repository publish * test skill stream and export edge cases * test remaining skill stream parser branches --------- Co-authored-by: Jason Wang <56037774+JasonW404@users.noreply.github.com> Co-authored-by: DongJiBao2001 <120021235+DongJiBao2001@users.noreply.github.com> Co-authored-by: gjc199 <97944442+gjc199@users.noreply.github.com> Co-authored-by: xuyaqi <xuyaqist@gmail.com> Co-authored-by: panyehong <91180085+YehongPan@users.noreply.github.com> Co-authored-by: frr <64584192+wuyuanfr@users.noreply.github.com> Co-authored-by: liudfgoo <49781630+liudfgoo@users.noreply.github.com> Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: liudongfei <liudongfei4@huawei.com> Co-authored-by: hhhhsc701 <56435672+hhhhsc701@users.noreply.github.com> Co-authored-by: root <root@DESKTOP-UARO3HF.localdomain> Co-authored-by: jxl <jixiaolongcom@sina.cn> Co-authored-by: chase <byzhangxin11@126.com> Co-authored-by: Chenlifeng <174292121+Lifeng-Chen@users.noreply.github.com> Co-authored-by: Xia Yichen <iamjasonxia@126.com> Co-authored-by: JeffWu <45140512+jeffwu-1999@users.noreply.github.com> Co-authored-by: WMC001 <46217886+WMC001@users.noreply.github.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Co-authored-by: Jinyu Z <1012871848@qq.com> Co-authored-by: Summer-Si <140902149+Summer-Si@users.noreply.github.com> Co-authored-by: sumi2234 <sumi2234@noreply.atomgit.com> Co-authored-by: Hankin <837833609@qq.com>
PreviousNext