| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
Bugfix: 修复conversation无法删除的问题,设置修改conversation title的样式 (#3785) * refactor new agents * update atuo-save * update * update * 📝 Docs: Add NL2Agent capability design handoff * 📝 Docs: Refine NL2Agent development and merge plan * 📝 Docs: Detail NL2Agent phase one implementation * ✨ Feature: Add NL2Agent draft workflow * ✅ Test: Cover NL2Agent draft lifecycle * 🐛 Bugfix: Refine NL2Agent clarification flow * 📝 Docs: Detail NL2Agent phase two contracts * ✨ Feature: Add NL2Agent installed resource binding * ✅ Test: Cover NL2Agent resource binding lifecycle * 🐛 Bugfix: Refresh Agent resources after binding * 🚚 migrate NL2Agent workflow to newagents * 🐛 Bugfix: Synchronize Agent resource bindings * ✨ Feature: Complete NL2Agent prompt confirmation flow * 🐛 Bugfix: Enforce NL2Agent interactive card boundaries * ♻️ Refactor: Configure NL2Agent from existing drafts * 🐛 Bugfix: Prevent NL2Agent false completion answers * 🐛 Bugfix: Preserve NL2Agent system prompt context * 🐛 Bugfix: Refresh NL2Agent form after draft saves * 🐛 Bugfix: Prevent NL2Agent few-shot generation truncation * 🐛 Bugfix: Enforce atomic NL2Agent prompt generation * ♻️ Refactor: Replace NL2Agent final confirmation with summary * ✨ Feature: Focus updated NL2Agent config sections * 解决冲突 * update * 删除newagents * fix 前端build问题 * fix agent version publish ut * ♻️ Refactor: Isolate NL2Agent MCP service * fix ut * fix(benchmark): retain agent example config * 过滤is_user_selectable为false的tool * ♻️ Refactor: Use automatic NL2A tool prefixes * ✅ Test: Align skill instance error handling mocks * 1. 修复conversation stop时没有调用接口 2. 修复Agent配置页中,未选择模型时也可以调试 3. 修复删除agent之后,url没有变,会fetch已删除的agent信息 * 🐛 Bugfix: Restore skill file upload helper import * add ut * fix ut * 🐛 Bugfix: Bypass proxies for local MCP connections * 🐛 Bugfix: Defer NL2Agent scheduled task setup * ✨ Feature: Add NL2Agent conversational revisions * 1. 统一Agent配置页面的校验逻辑 2. 修复在问答页面,删除当前conversation的时候传递错误的conversation_id导致删除会话失败 3. 恢复在Agent配置页面的版本提示 4. 修复发现外部A2A Agent相关功能 5. 修复Nl2Agent在开启本地代理的情况下在调用本地mcp工具时超时 6. 修复导出智能体失败(因为新版本删除了business_description字段,在导出时这个字段却又是必填字段) * fix form input * 恢复文件修改 * 恢复文件修改 * fix ut * 1. 添加tour引导用户使用nl2agent功能 2. 修复偶现切换agent频繁调用api/tool/update导致卡死的问题 * 优化agent info接口的缓存机制,默认设置不缓存,确保数据的新鲜 * 修复无法修改是否发布为A2A Agent的问题 * 支持当用户导入智能体后,自动跳转到这个导入的智能体 * fix ut * 在问答的composer中,仅上传文件无法发送消息,只有包含文本时才能正常发送消息 * 支持chat页面断点重传 * 提示用户默认编辑的是草稿态 * set aidp_serach_tool user_selectable * 设置sql 支持幂等执行 * 设置“智能生成”和“调试” panel在关闭时仅隐藏,而非销毁 * 修复频繁调用check_name接口 * 优化对话时的图片渲染 * 支持删除conversation,设置修改conversation title的样式 --------- Co-authored-by: RedShakespeare <silencess_m@qq.com> Co-authored-by: Cursor <cursoragent@cursor.com> | 14 天前 | |
fix: remove delete account button from avatar dropdown (#3727) | 19 天前 | |
✨feat:Add metadata parameter mechanism and fix prompt injection issues (#3738) * feat:新增metadata参数机制,支持对话传参和A2A子智能体传递以及北向接口适配 * bugfix:修复智能体生成提示词误注入知识库描述 * bugfix:去掉initl.sql新增语句 * test:add utest * test::add test * test:add test * test:add test * bugfix:add error message * bugfix:fix error message | 18 天前 | |
✨ Feature:Frontend display for generated files and sandbox optimization (#3774) * ✨ Feature:Frontend display for generated files and sandbox optimization * ✨ Feature:Frontend display for generated files and sandbox optimization [Specification Details] 1. Modify test cases * ✨ Feature:Frontend display for generated files and sandbox optimization [Specification Details] 1. Modify test cases | 15 天前 | |
fix: sync MCP add/edit pages with config page, display startup logs, and resolve tool refresh bug (#3735) * 调整mcp添加mcp和编辑页面,与mcp配置页面保持一致; mcp容器化启动点击后就展示日志,配置页面和仓库页面都修改; 修复mcp服务更新后,无法刷新工具的问题; * mcp仓库增加分页; fix test case * fix test case * fix test case * Update custom.json * 修复本地镜像上传部署日志显示问题 * fix bug * fix bug * add test case * add test case | 18 天前 | |
✨ Remove mem0 and support new memory architecture (#3497) * ✨ feat(context): Add fine-grained context management infrastructure (PR-0) Add foundational context management module under sdk/nexent/core/agents/context/ to support W8/W12/W13 workstreams for progressive component reduction, history projections, and unified context policy. Core components: - ContextItem: Fine-grained context unit with type, authority tier, and fidelity levels - ContextItemHandler: Pluggable handler interface for scoring and reducing context items - ItemHandlerRegistry: Registry mapping context item types to their handlers - 10 built-in handlers (system_prompt, tool, skill, memory, knowledge_base, etc.) - ContextProjector: Converts ContextComponent to ContextItem with proper authority/fidelity - Policy models: SelectionDecision, MemoryDecision for traceable policy decisions - ReductionResult: Immutable record of context reduction operations - Reason codes: 11 standardized codes for decision traceability Testing: - 77 unit tests covering all data models, handlers, and registry - All tests pass with 0.59s execution time This is infrastructure-only (no existing code modified) and provides the foundation for subsequent PRs implementing context projection, policy engines, and handlers. * feat(context): integrate ContextItem projection into ContextManager (PR-1) - Add use_context_items config field (default False for backward compatibility) - Add context_items field to ContextEvidence for traceability - Implement project_context_items() method in ContextManager - Integrate projection logic into assemble_final_context() - Store _source_component reference in metadata for semantic equivalence - Use component.to_messages() to produce formatted text (not JSON dumps) - Add 15 projection tests covering all 7 component types - Add 3 ManagedContextRuntime integration tests - Remove test __init__.py files to fix namespace collision All 112 tests pass. Oracle verified complete and correct. * feat(context): add DB history projection for ReAct process persistence (PR-2) Implement W12 DB History Projection to persist and reconstruct ReAct execution details from conversation history. Database layer: - Add 5 nullable columns: run_id, step_id, tool_call_id, event_time on conversation_message_t and conversation_message_unit_t - Add indexes on run_id and tool_call_id for query performance - Extend conversation_db.py with optional history projection params - Add get_message_units_by_run() and get_max_run_id_for_conversation() SDK layer: - Create HistoryProjector with dependency injection for DB queries - Support 3 projection modes: model_context, resume, chat - Produce HISTORY_TURN, TOOL_CALL_RESULT, WORKING_MEMORY ContextItems - Wire into ContextManager.use_context_items=True path via config Service layer: - Track run_id/step_id/tool_call_id/event_time in _stream_agent_chunks() - Pass tracking fields through save_message/save_message_unit wrappers - Compute run_id before message creation for proper persistence Tests: 21 new tests, 114 total context tests passing, zero regressions. * feat(context): close PR-2 acceptance gaps — production wiring + integration tests Production wiring: - Thread conversation_id through execution chain: agent_service → create_agent_run_info → AgentConfig → ManagedContextRuntime → assemble_final_context → HistoryProjector - Inject HistoryProjector into ContextManagerConfig before get_or_create_context_manager() so both run-scoped and conversation-scoped ContextManager paths receive it - use_context_items remains False by default (opt-in) Integration tests (7 new, 28 total): - TestChatProjectionCompleteness: unit type coverage, ordering, metadata, source_refs completeness - TestEndToEndIntegration: component + history projection → FinalContext, graceful failure handling, conversation_id gating 121 context tests + 28 HistoryProjector tests passing, zero regressions. * fix(context): resolve 3 activation blockers for use_context_items pipeline Blocker 0: Call register_all() in ContextManager.__init__ so ItemHandlerRegistry is populated before any projection occurs. Blocker 1: Add to_messages() method to ContextItemHandler base class with default implementation, plus type-specific overrides in HistoryTurnHandler, ToolCallResultHandler, and WorkingMemoryHandler. Blocker 2: Remove mock of ItemHandlerRegistry.get in integration test so the end-to-end path exercises real handlers. 198 tests passing (121 context agent + 77 context module), zero regressions. * fix(context): move register_all() to lazy initialization to avoid import regression Move register_all() call from ContextManager.__init__ to lazy initialization in project_context_items() to avoid breaking isolated test loading. Changes: - Remove register_all() from __init__ (line 301-302) - Add _ensure_handlers_registered() helper with idempotency flag - Call helper at start of project_context_items() - Handlers now register only when actually needed This fixes the 124-test regression caused by eager import in __init__ breaking test_agent_context/test_pure_functions.py isolated loading. All 254 context tests now pass (121 context + 77 module + 56 agent_context). * feat(context): add OpenTelemetry instrumentation to context module Add comprehensive OTel tracing to provide visibility into the context assembly pipeline: - ManagedContextRuntime: trace prepare_step() and prepare_final_answer() - ContextManager: trace assemble_final_context(), project_context_items(), compress_if_needed(), and _do_generate_summary() with nested LLM spans - HistoryProjector: trace project() with nested DB query spans All spans include relevant attributes (conversation_id, purpose, counts) and span events for key milestones. Backward compatible - spans are no-ops when monitoring is disabled. Testing: All 254 existing tests pass, no syntax errors. * fix(context): correct compress_if_needed span scope and improve project_items attributes Critical fix: - Move 'with self._lock:' block inside trace_operation context manager - Ensures all compression work (including LLM calls) is properly traced - Fixes broken parent-child span hierarchy for compression path Minor improvements: - Add component_count as span attribute to project_context_items - Remove unused 'as span' from assemble_final_context All 254 tests pass. * 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> * fix(context): resolve strategy filtering bypass in use_context_items path Critical bug fix: When use_context_items=True, assemble_final_context() was passing ALL registered components to project_context_items() instead of only strategy-selected components, causing token budget overflow and behavioral divergence from use_context_items=False path. Changes: - Add selected_components field to ManagedRunContext to track filtered subset - Modify prepare_run_context() to explicitly call strategy.select_components() and store both all components and selected components - Fix assemble_final_context() to use run_context.selected_components - Fix _stable_component_fingerprints to use filtered components - Propagate selected_components through rebuilt ManagedRunContext Additional improvements: - Add OpenInference input/output value recording to all context module spans - Fix trace_operation() to process input.value through payload preview - Fix history_projector output scope to set on correct span Verification: - 5 new strategy filtering tests (all pass) - 5 PR-0/1/2 comprehensive tests (all pass) - 87 existing tests (all pass) - Verified behavioral equivalence between use_context_items=True and False - Verified OTel traces show correct input/output in Langfuse Production ready: backward compatible, no breaking changes * 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> * chore: clean up root-level test files Moved to test/sdk/core/agents/: - test_pr0_1_2_comprehensive.py → test_context_pr0_1_2.py - test_strategy_filtering_fix.py → test_strategy_filtering.py Deleted (redundant or not suitable for CI): - test_otel_smoke.py (manual smoke test, not a proper unit test) - test_budget_equivalence.py (covered by test_strategy_filtering.py) - test_assemble_equivalence.py (covered by test_strategy_filtering.py) - test_agent_context_items.py (integration test requiring API keys) * refactor: remove PR references from test names - test_pr0_handlers -> test_handlers - test_pr0_projector -> test_projector - test_pr1_equivalence -> test_equivalence - test_pr2_history_projector -> test_history_projector - Updated all test output labels to remove PR-0/1/2 prefixes * fix(tests): update test assertions to match new API signatures - Add conversation_id parameter to create_agent_config and create_agent_run_info assertions - Add run_id, step_id, tool_call_id, event_time parameters to create_message_unit assertions - Update fake_save_message to accept **kwargs for additional parameters - All tests now pass individually (177 + 327 + 68 = 572 tests) - Note: test__stream_agent_chunks_captures_final_answer_and_adds_memory has a pre-existing issue with background task execution * fix(tests): add missing ProcessType attributes to MockProcessType The test was failing because MockProcessType was missing STEP_COUNT, TOOL, and EXECUTION_LOGS attributes that are used in agent_service.py. This caused an exception in the chunk processing loop that prevented captured_final_answer from being set, which in turn prevented the background memory task from running. Added the missing attributes to MockProcessType and added a small sleep to ensure the background task has time to complete before assertions. * fix: handle None history in agent request Fixed TypeError when agent_request.history is explicitly None instead of absent. Changed getattr(agent_request, 'history', []) to handle None case properly. This bug prevented message persistence when is_debug=false, causing all event log fields (run_id, step_id, tool_call_id, event_time) to remain NULL. * test: add unit tests for conversation_db new functions and fix SonarCloud floating point comparison - Add 5 tests for get_message_units_by_run (with/without run_id, empty result, string coercion, dict mapping) - Add 4 tests for get_max_run_id_for_conversation (found, none, string coercion, zero edge case) - Update stubs to include run_id and step_id attributes - Fix floating point comparison in test_handlers.py using pytest.approx (SonarCloud S1244) This improves patch coverage for conversation_db.py and fixes SonarCloud reliability rating. * test: add SDK integration test with real model and LangFuse tracing Add comprehensive integration test that verifies: - Real LLM model execution through the SDK - OpenTelemetry instrumentation captures spans correctly - Context management with use_context_items=True works end-to-end - LangFuse receives and displays traces properly Test includes: - test_context_items_with_real_model: Basic context management with real model - test_context_compression_with_real_model: Compression with low token threshold - test_history_projector_integration: History projection with real model Requires OPENAI_API_KEY environment variable to run. * test: fix SDK integration tests and mark as local_only - Fix OpenAIModel initialization (add model_id parameter) - Fix ActionStep initialization (use correct parameters) - Fix HistoryProjector initialization (use query_units_fn) - Fix ManagedContextRuntime.prepare_step call (remove conversation_id) - Add local_only marker to pytest.ini - Mark all SDK integration tests as local_only to skip in CI These tests require OPENAI_API_KEY and network access, so they should only run locally, not in CI environments. * chore: remove temporary dev plan from git tracking - Remove CONTEXT_MANAGEMENT_DEV_PLAN.md from git (keep locally) - Add to .gitignore to prevent future commits This is a temporary development document that should not be tracked in version control. * docs: add spec coding workflow * refactor: merge tool_call rows into JSON, remove run_id/event_time, remove WorkingMemoryHandler - Merge tool+execution_logs into single tool_call row with JSON unit_content - Remove run_id from conversation_message_t and conversation_message_unit_t - Remove tool_call_id and event_time from conversation_message_unit_t - Rename step_id to step_index for clarity - Replace run_id grouping with message_id-based algorithm in HistoryProjector - Remove WorkingMemoryHandler and WORKING_MEMORY context item type - Remove resume projection from HistoryProjector - Remove dead components field from ManagedRunContext - Fix parameter ordering in create_agent_run_info() - Add TOOL_CALL handling in frontend for both streaming and history - Rewrite migration to be idempotent with proper DROP/ADD COLUMN - Update all affected tests (backend + SDK) * test: add tool_call merge tests and fix SonarCloud type mismatch - Add 3 tests for tool_call merge logic in _stream_agent_chunks - Fix string-to-int type mismatch in test_conversation_db.py * chore: add spec-coding skill, update AGENTS.md and benchmark scripts * chore: add .agents file and update .gitignore to exclude it * Remove old doc * ♻️ Clean up lagecy implementation of mem0 memory * Merge origin/develop into dev/feature/memory_0709 (#3412) Update feature branch with mainstream develop branch. * 📃 Update spec-coding skills * ✨ [WIP] Memory implementation Phase 1 * ✨ [WIP] Memory implementation Phase 2 * ✨ [WIP] Memory implementation Phase 4 * ✨ Memory settings and management frontend * ✨ Memory settings and management frontend * ✨ Support memory management and memory tool calling 🐛 Bugfix: add pdfinfo in data-process image to resovle files with images * 🧪 Add test files * 🧪 Add test files ♻️ Change memory seperate key --------- Co-authored-by: Jinglong Wang <jasonwong2019@outlook.com> Co-authored-by: liudongfei <744532452@qq.com> Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: liudongfei <liudongfei4@huawei.com> Co-authored-by: Jason Wang <56037774+JasonW404@users.noreply.github.com> Co-authored-by: Nexent Agent <agent@nexent.local> | 1 个月前 | |
♻️ Refactor: remove deprecated app config stuff (#3841) * ♻️ Remove deprecated app config stuff * 🧪 Add test files * 🧪 Add test files * 🧪 Add test files | 6 天前 | |
update <Can> example | 7 个月前 | |
✨feat:Adapt AIDP to new agent configuration page and fix bugs (#3762) * feat:aidp适配新智能体配置页面 * bugfix:修改页面 * bugfix:修复存量智能体配置aidp参数误传diaplayname * bugfix:修复管理员越权查看用户知识库 * bugfix:知识库选择也优化私有标签 * test:add utest * bugfix:修复管理员无法编辑租户内其他非私有知识库 | 15 天前 | |
feat: knowledgebase capacity quota and warning (#3451) * feat(quota): add storage quota enforcement * feat(quota): add quota management interface and warnings * :bug: developer warning depressed * feat(quota): enforce platform tenant allocation * fix: preserve quota patch field semantics * test: include quota coverage in CI suite * test: cover quota platform edge cases * fix: localize quota allocation conflicts * feat: refine platform quota overview layout * fix: restore platform quota panel scrolling | 1 个月前 | |
Refactor OAuth implementation and enhance account linking features * openspec初始化 * oauth spec开发结果 * oauth 单元测试 * oauth 重定向修复 * oauth 重定向修复 * oauth 重定向修复 * oauth 抽象实现 * gde provider * gde provider * enhance unlink_account logic to check for password authentication before unlinking * refactor OAuthAccountsSection to load enabled providers and improve account unlinking logic * add OAuth linking functionality with state management and error handling * refactor OAuth account deletion logic to use direct deletion and update related tests * update GDE OAuth configuration to use environment variables for URLs and client IDs * add SSL verification configuration for OAuth requests and update context handling * remove hardcoded OAuth credentials from const.py and update .env.example * remove avatar_url references from user info handling and update email fallback logic * refactor user identity handling in OAuth account unlinking logic * update OAuthAccountsSection to simplify display logic for linked accounts * refactor OAuth user binding logic to check for existing accounts before creating new users * 删除冗余文件 * 删除冗余文件 * add user OAuth account table and update trigger for third-party logins * 修复单元测试 * 删除冗余代码 * k8s同步oauth配置 * 软删除时需添加delete_flag="Y"的筛选条件 * 用户删除的时候将oauth表中delete_flag设置为Y * 优化import * 移除无用的rebind_oauth_account函数调用,并在用户已绑定其他账户时抛出OAuthLinkError * clean code * 补充ut * 补充单元测试 | 4 个月前 | |
✨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. | 2 个月前 | |
feat: refactor label system (#3809) * fix(tag-mgmt): register legacy exception handlers + fix filter endpoint sync + add value usage index - backend/apps/app_factory.py: register handlers for legacy domain exceptions (UnauthorizedError->401, ForbiddenError->403, LimitExceededError->429, ValidationError->400, NotFoundException->404, DuplicateError->409, TagManagementConflictError->409, SignatureValidationError->401) so they no longer fall through to the generic 500 handler. Verified live: unauthenticated tag endpoints now return 401 instead of 500. - backend/apps/tag_management_app.py: convert filter_resource_tag_assignments from async/await to sync/_run to match the synchronous TagManagementDB.filter_authorized_resource_ids (which returns a dict, not a coroutine). Fixes TypeError -> HTTP 500 on the filter endpoint. - deploy/sql: add partial index idx_resource_tag_assignment_value (tenant_id, value_id, delete_flag) WHERE delete_flag='N' via new migration v2.5.4_0820_tag_value_usage_index.sql and init.sql. Benchmark at capacity limits (100 defs / 100k values / 50k assignments) showed value-usage-count was a 102ms Seq Scan; with the index it becomes a 1.28ms Index Only Scan. Idempotent (IF NOT EXISTS). * feat(tag-mgmt): unified tag management for KB/agent/MCP/skill resources - Add tenant-scoped tag libraries, definitions, values and assignments - Wire tag chips and filters into knowledge base, agent and MCP pages - Add document tag projection ledger with provider sync - Clean up assignments when KB/agent/MCP/skill resources are deleted - Add preflight and migration scripts v2.5.0-v2.5.3 - Cache assignment reads on list pages to avoid per-row HTTP requests * fix(tag-mgmt): migrate tag assignment entries and enable tag search for mine agents * feat(tag-mgmt): complete unified tag assignment flows * feat(tag-management): unify repository tag filters * feat(tag-management): localize and search agent tags * feat(tag-management): unify repository tag filtering * fix(tag-management): migrate legacy agent categories * fix(tag-management): restore rebased tag UI * feat(tag-management): support no-value tags * fix(tag-management): unblock CI checks * chore(sonar): exclude mirrored tag SQL from CPD * test(tag-management): raise patch coverage * fix(tag-management): address review feedback * fix: migrate tag services after management split | 6 天前 | |
✨feat:Adapt AIDP to new agent configuration page and fix bugs (#3762) * feat:aidp适配新智能体配置页面 * bugfix:修改页面 * bugfix:修复存量智能体配置aidp参数误传diaplayname * bugfix:修复管理员越权查看用户知识库 * bugfix:知识库选择也优化私有标签 * test:add utest * bugfix:修复管理员无法编辑租户内其他非私有知识库 | 15 天前 | |
♻️ Feat: add newchat i18n & support mermaid diagram (#3543) * feat:add newchat i18n * feat: newchat support mermaid diagram * Support mermaid diagram & adjust composer pointer style * add mermaid svg viewbox padding * fix | 1 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 14 天前 | ||
| 19 天前 | ||
| 18 天前 | ||
| 15 天前 | ||
| 18 天前 | ||
| 1 个月前 | ||
| 6 天前 | ||
| 7 个月前 | ||
| 15 天前 | ||
| 1 个月前 | ||
| 4 个月前 | ||
| 2 个月前 | ||
| 6 天前 | ||
| 15 天前 | ||
| 1 个月前 |