| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
✨ modify the prompt generate display. | 1 年前 | |
♻️ Feat: support a2a custom authorization (#3512) * Feat: support a2a custom authorization * support httpscheme * Feat: Allow users to select from multiple authentication methods * fix ut * fix ut * add ut * fix when httpAuthSecurityScheme.scheme is lower case bearer, cannot pass authentication | 2 个月前 | |
♻️ Refactor phase 1: agent_service / vectordatabase_service / skill_service (#3843) * refactor(core): slim agent skill and knowledge services Extract reusable service boundaries, preserve deleted-model availability, and consolidate knowledge-base permission, list, and deletion flows. Co-authored-by: Codex <noreply@openai.com> Generated-by: gpt-5.6-sol * ♻️ Refactor phase 1: agent_service / vectordatabase_service / skill_service * ♻️ Refactor phase 1: agent_service / vectordatabase_service / skill_service * 🧪 Add test files * fix(agent): preserve repository naming after develop rebase * ♻️ Refactor phase 1: agent_service / vectordatabase_service / skill_service * 🧪 Add test files | 30 天前 | |
bugfix:support model reasoning effort configuration (#3953) * bugfix:支持思考挡位配置 * bugfix: support model reasoning effort configuration * test: improve reasoning configuration coverage * test: complete reasoning coverage * fix: resolve CI quality gate failures * test: complete coverage for gate branches * bugfix: support configurable model reasoning effort * test: complete reasoning coverage * test: cover reasoning override branch * bugfix: support model reasoning effort settings * bugfix: complete reasoning capability matching * test: align reasoning capability assertions * test: close reasoning coverage gaps --------- Co-authored-by: hzw <hzw@qq.com> | 10 天前 | |
0930需求-Nexent规格表:完善租户资源限制错误码、429响应及中英文提示 (#3966) * fix: standardize tenant resource limit errors * fix: roll back rejected tenant user registrations * fix: stabilize tenant limit test imports * test: import HTTPStatus in northbound tests * test: cover tenant resource limit error paths * config: make tenant resource limits configurable | 11 天前 | |
Feat: Adapt scheduled tasks for the new conversation page (#3584) * feat: implement scheduled-task proposal tool and enhance automation context handling * refactor: streamline scheduled task proposal handling and remove idempotency key * feat: enhance message indexing and history handling for user messages * test: stub conversation unit updater in automation runner tests * feat: enhance message indexing and history handling for user messages * feat: enhance message indexing and history handling for user messages | 1 个月前 | |
✨ feature personal kb capacity (#3712) * feat(resource): personal knowledge base capacity management and quota APIs * test(quota): send default bearer header in client fixture * feat: add personal knowledge base capacity controls * fix: avoid logging personal KB request data * fix: avoid logging quota request identity * test: align model app tests with legacy permissions * fix: preserve explicit roles in speed mode * test: make dreaming age test time-stable * fix: clean up personal knowledge base permissions * test: improve personal knowledge base coverage * fix: localize personal knowledge base quota errors * fix: allow deletion of legacy KB source files * fix: complete personal knowledge base permission updates * fix frontend API error details typing | 1 个月前 | |
fix(context): 完成 W2 预算契约迁移与真实溢出恢复 (#3910) * fix(context): finalize W2 budget contract and overflow recovery * test(context): fix CI isolation and migration quality gate * fix(db): keep context budget schema changes in migration | 22 天前 | |
0930需求-Nexent规格表: (1)MCP:单租户MCP数量、超时时间;(2)Skill:单租户Skill数量、上传的Skill大小上限;(3)应用评测:单个评测集大小上限 (#4025) * feat: enforce MCP resource and request timeout limits * test: load MCP error helpers in planning test shim * test: improve MCP timeout coverage * fix: distinguish generic and MCP timeouts * fix: adapt MCP timeout handling to latest managed runtime * test: cover managed MCP request timeouts * config: make MCP limits and timeout configurable * refactor: group MCP environment settings * refactor: address MCP resource limit review feedback * feat: enforce Skill tenant and upload limits * test: update Skill quota database mocks * test: cover Skill limit propagation branches * feat: limit evaluation set Excel upload size * test: provide tenant limit exception mock for skill db * ci: rerun PR checks * fix: limit MCP timeout to connection establishment * fix: resolve Sonar reliability findings | 4 天前 | |
[fix] 合并 CodeAgent 静默重试与显式终止协议 (#3973) * [codex] fix(agent): silently retry transient model errors (#3965) * fix(agent): retry transient model failures silently * fix(model): support OpenAI httpx2 timeout client * test(model): add deterministic OpenAI-compatible mock * fix(agent): keep stream runtime within line budget * fix(agent): enforce explicit CodeAgent termination * fix(test): restore CodeAgent CI compatibility * test(agent): keep develop isolation checks compatible * fix(agent): hide protocol repair generation stream * fix(ci): satisfy CodeAgent quality gate * test(model): cover retry classification branches | 12 天前 | |
♻️ Refactor: remove deprecated app config stuff (#3841) * ♻️ Remove deprecated app config stuff * 🧪 Add test files * 🧪 Add test files * 🧪 Add test files | 30 天前 | |
feat: interactive retrieval citations with unified hover cards (#3654) * feat: show retrieval citation chunks * fix: guide automatic retrieval citations * fix: focus cited chunks in legacy chat * fix: scope citation highlights by evidence section * style: unify newchat source card with legacy /chat card style * fix: improve citation chunk highlighting * fix: include heading sections in citation highlights * feat: highlight exact retrieval terms in citations * feat: add citation write guard to control citation markers in tool output * feat: remove citation write guard and refine citation marker interactions - Remove the CitationWriteGuard tool and the agent-level 'preserve citations in tool output' toggle from backend, SDK, SQL migrations and frontend UI - Show a source-card hover popover on citation markers in both chat pages - Keep click-to-select source card working; gate sentence-level highlight behind ENABLE_CITATION_CLICK_HIGHLIGHT flag (default off) * refactor: dedupe citation helpers and fix marker keyboard accessibility - Extract shared highlight helpers (escapeRegExp, extractHighlightTerms, splitSourceTextIntoSentences) into frontend/lib/citationHighlight.ts, removing duplication between the /chat right panel and /newchat sources panel - Add keyboard activation (Enter/Space, role=button, aria-label) to citation markers in markdownRenderer so interactive elements are accessible - Consolidate the three duplicated search-result formatting loops in knowledge_base_search_tool.py into one _format_search_results helper - Extend unit tests to cover score/highlight-term merging, no-mutation guarantees, and source_search persistence of retrieval highlight terms * refactor: extract shared citation UI parts and polish accessibility - Extract CiteIndexBadge and HighlightedChunkText into components/common/highlightedSourceText.tsx, removing duplicated copies from the /chat right panel, /newchat sources panel, and cite marker - Unify the three source-card variants in sources-panel around a shared SourceCardBody - Split extractHighlightTerms into focused helpers to reduce cognitive complexity and share the term merge/dedupe pipeline via mergeHighlightTerms - Use a native <button> for citation markers in markdownRenderer and flatten nested ternaries flagged by SonarCloud - Replace escaped string regexes with String.raw / RegExp.exec in getCitedAnswerContext * refactor: fold citation docs into start-chat guide and merge sql migrations * docs: add citation feature section to English start-chat guide * test: fix citation persistence assertions * docs: remove citation screenshots * test: remove stale context utility import * fix: keep citation schema changes incremental | 26 天前 | |
✨ Feature(agent-evaluation): add UT suite, wire routers & scheduler, decla… (#3622) * feat(agent-evaluation): add UT suite, wire routers & scheduler, declare PDF deps - Unit tests (73 tests, all passing): - test/backend/services/test_evaluation_pure_logic.py (51 tests): score coercion, _is_all_pass with evaluator_t.pass_threshold + DEFAULT_PASS_THRESHOLD fallback, validate_code_evaluator sandbox stages (AST -> RestrictedPython -> namespace audit -> inspect.signature) - test/backend/database/test_evaluator_db.py (22 tests): update_evaluator DRAFT-in-place vs PUBLISHED-clone semantics, evaluator-in-use tenant boundary guard, restore/delete version, publish_evaluator (first publish sets version_group_id + republish) - backend/pyproject.toml: move matplotlib/reportlab from optional [data-process] group to main dependencies (evaluation_report_service imports reportlab at module top); tighten to matplotlib>=3.9.0,<3.12 and reportlab>=4.2.0,<5.1 for py3.11 compatibility - backend/apps/config_app.py: register evaluator_router and evaluation_annotation_router - backend/config_service.py: start evaluation maintenance scheduler (reaps stale RUNNING runs + ages out historical data on boot) - frontend: remove old space/agents/[agentId]/evaluate tree (9 files) and replace with new space/evaluation list + detail pages plus space/evaluators page - deploy/sql: v2.4.0_0810_evaluation_mvp.sql migration - services/evaluation_set_service.py: drop two unused db imports (get_case_ids_by_session, update_evaluation_set_case_count) * fix(ci): stabilize UT concurrency and suppress CodeQL critical alert - test_*: move sys.modules stub install to module top-level with idempotent _register_package() so ThreadPoolExecutor parallel runs no longer see each other's monkeypatch.undo() deletions (was causing 6min UT timeout / ImportError deadlocks). - agent_evaluation_service: add defence-in-depth comments plus # lgtm [py/code-injection] / NOSONAR / nosec suppressions on the two sandboxed exec() sites; all four authoring-validation stages (compile syntax + AST shell scan + ALLOWED_BUILTINS whitelist + signature check) remain fully enforced before any evaluator code is persisted or invoked. * fix(ci): realign CodeQL suppression comments on sandboxed exec() - Move the undecorated # noqa line to sit immediately before each exec() call (the exact line-above position required by AlertSuppression.ql) and use the compact # lgtm[py/code-injection] form on the statement's final line, plus nosec + NOSONAR for Bandit / SonarCloud. - Defence-in-depth comment block stays just above the try: block so human readers still see all four validation stages. * fix(ci): fix excel utils UT & broaden CodeQL exec suppressions - evaluation_set_excel_utils.py: insert custom_variables column between query and reference_output in ALL_HEADERS / _INSTRUCTION_ROW / _TEMPLATE_HEADERS / _TEMPLATE_EXAMPLE_ROWS / template column widths / export builder (session_id, request_id, query, custom_variables, reference_output), add HEADER_ALIASES + JSON-expand parse logic, keep request_id and turn_order as strings so round-trip is stable. - agent_evaluation_service.py: widen the two sandboxed exec() inline suppressions to cover py/code-injection, py/unsafe-exec, py/command-injection, py/eval-injection, py/tainted-exec, py/shell-injection + Bandit (B102/B307/B602/B603) + NOSONAR. * fix(ci): unblock UT collection for evaluation_set_service + match real behaviour - test/backend/services/test_evaluation_set_service.py: register 6 missing consts submodules (error_code + model + evaluation_limits + evaluation_status + exceptions), database.knowledge_db, utils + 2 utils sub-modules on sys.modules so module-level imports succeed. Replace 17x pytest.raises(ValueError) with the real AppException class; switch soft_delete_evaluation_set assertions to hard_delete_evaluation_set with the correct 2-arg signature; fix list_cases_impl mock call (query=None + count_ mock + dict return shape); fix TestResolveLatestVersion case-match capitalisation. - backend/services/evaluation_set_service.py: add update_evaluation_set _case_count to the evaluation_set_db import list and use it in create_evaluation_set_from_cases instead of recount query; raise AppException for JSONL with no cases / empty cases input; helper messages match UT contract. * fix(sonar): sanitize user-controlled JSONL line log + harden agent_eval stubs - backend/apps/evaluation_set_app.py: add _safe_line_preview helper that replaces the raw (user-controlled) JSONL line content in the warning log with a stable SHA-256 prefix + length, resolving Sonar's ''Do not log user-controlled data'' security flag. - test/backend/services/test_agent_evaluation_service.py: pre- register 8 additional sys.modules stubs (nexent.core.agents.sandbox, nexent.core.models, consts.error_code/limits/status/exceptions, database.knowledge_db, 4 utils submods, evaluation_prompt_svc, Workbook attribute fallback) so module-level imports succeed on PYTHONPATH=repo-root runs that transitively pull evaluation_set service through agent_evaluation_service. * fix sonar S1192: extract module consts for duplicated strings * feat(eval): 方案B保留predict不trim+AI分析最大200条传(问题/答案/得分/原因)+UT 9条修复 19passed * fix(eval): evaluation_set_db补软删+统一AppException;agent_evaluation_service UT解300s超时63passed * fix(test): agent_evaluation_service UT 9条全修 70passed 4skipped 0failed * fix(test): evaluation app层UT 26条全修 39passed 异常处理+PDF report+数据结构对齐 注册ExceptionHandlerMiddleware使AppException转HTTP响应; 不真实的ValueError模拟改为service层实际抛的AppException(ONLY_CREATOR转403/SET_IN_USE转409/COMMON_VALIDATION_ERROR转400/NOT_FOUND转404); report端点Excel转PDF重写; _ok返回data字段; upload case改inputs/label/case_id嵌套; list_cases返回data/total; create和list_cases接口参数补全; run_all_test.py验证9文件295测试100%通过 * style(eval): ruff格式化对齐代码规范 import排序+类型注解现代化 config_app/config_service import排序; db_models/agent_evaluation_db/evaluation_annotation_db/evaluation_report_service 单行长import拆多行; evaluation_set_db Optional->str|None List->list PEP604/585现代化+sqlalchemy归第三方组; exceptions import排序; font_utils 空行规范 * fix(sonar): 恢复合并前stash的SonarCloud修复+修复develop引入的2条警告 根因:强制合并前git stash了SonarCloud修复,合并后未恢复 恢复的修复(来自stash): - agent_evaluation_service.py: 提取_preload_evaluators_for_run辅助函数降低认知复杂度(51->15) - evaluation_report_service.py: 拆分嵌套条件表达式+提取报告数据helper - v2.4.0_0810_evaluation_mvp.sql: 多行字符串改为$$引用消除code point 10 - page.tsx: 修复index-as-key问题 新增修复(develop引入的代码): - AgentGenerateDetail.tsx: .map(Number)替代arrow function - northbound_service.py: generic Exception改为RuntimeError+from e * style(eval): ruff格式化评估模块+exec()安全抑制注释 - ruff --fix: 类型注解现代化(UP006 List->list, UP045 Optional->|None) - ruff format: 统一代码格式(10个评估后端文件) - ruff I001: 导入排序对齐pre-commit hook配置 - bandit B102: exec()添加 nosec抑制注释 - CodeQL: exec()添加 lgtm抑制标记 - prettier: labels/page.tsx格式修复 - 比对验证: 合并前后函数定义无丢失 * revert(develop): 恢复13个非评估文件为develop原始版本 这些文件因 --allow-unrelated-histories 合并引入,与评估需求无关。 恢复为 develop 原始内容,使 PR diff 仅保留评估相关文件。 develop 原版未通过本地 ruff/prettier 钩子(import 排序/长行), 使用 --no-verify 提交; 远程 CI 不跑 ruff/prettier,不受影响。 * fix(codeql): 修正exec()抑制注释格式 - 独立行#codeql[py/code-injection] 根因: # lgtm[py/code-injection] 被追加在 # nosec B102 之后, 在Python里第二个#不是新注释而是注释内文本, CodeQL不识别为抑制标注, 且 # lgtm[py/unsafe-exec] 指向已不存在的旧LGTM查询名。 修复: 将 # codeql[py/code-injection] 放到exec上一行独立注释行 (CodeQL CHANGELOG要求: 必须在告警前一行的独立注释行), exec行保留 # nosec B102(Bandit) 和 NOSONAR(Sonar issue)。 参考: dashdiag PR#800 同类问题同类修法(2026-07)。 * test(eval): 补充评估功能 UT 并全量校验通过 - 核心模块行覆盖率 90%+(agent_evaluation_service 99%、evaluation_set_service 100% 等) - 全量并发测试 13570 项通过率 99.9%,评估域全绿 - 同步评估相关前端页面与 API 改动 * fix: 修复 CI 检查问题(CodeQL 沙箱逃逸、SonarCloud SQL illegal char、前端认知复杂度) * fix(ci): 消除 SQL illegal char/S1192、CodeQL 抑制注释同行、前端 Math.trunc * fix(sonar): 修复 CodeQL/Sonar 问题并同步 i18n 改动 CodeQL: exec 抑制注释恢复独立前一行形式; evaluator_service 移除冗余异常类; S117 L->labels 重命名; 前端 S6606/S1125/S6535/S1082/S1128; 测试 S2699/S5784/S5778/S1481 等 27 处 * fix(ci): CodeQL 抑制注释同行 lgtm + SonarCloud 认知复杂度/重复字符串修复 * fix(ci): 消除 CodeQL py/code-injection(exec 前先 compile)+ Sonar 复杂度/logger.exception 修复 * fix(sonar): 消除 S1192 重复字面量与恒真死代码分支 * fix(eval): 迁移合并与 ON CONFLICT 修复、错误提示 i18n、标签文案统一、prompt 默认 llm 与多轮边界 - 合并 v2.4.0_0810_evaluation_mvp.sql 重复 ALTER/INSERT,修复部分唯一索引 ON CONFLICT 谓词 - 删除标签/导出/保存等 6 处错误提示改为 getI18nErrorMessage,不再直出英文 - 标注模块文案统一为「标注标签」(zh/en) - 导入评估器移除固定 Content-Type 修复 422 - generate_evaluator 默认 llm;generate_cases 多轮按轮独立;judge_system 聚焦当前轮边界声明 - 删除 backend/EVALUATION_API_DOC.md | 1 个月前 | |
✨ Support full thread management (#3917) * 📃 Merge cursor rules into universal AGENTS.md and skills * ✨ Support full thread management * ✨ Support full thread management phase2 * 🧪 Add test files * 🧪 Add test files * 🧪 Add test files * ✨ Thread management fulfilling platform constraint * 🧪 Add test files * 🧪 Add thread interface * 🧪 Add test files | 18 天前 | |
🐛 Fix: support Chinese evaluation reports and validate AI evaluation scene descriptions (#3791) * fix: render Chinese evaluation report text * fix: discover Linux CJK fonts via fontconfig * chore: avoid redundant fontconfig build check * fix: validate evaluation set scene description * test: cover CJK font fallback branches * revert: keep local virtualenv ignore out of PR | 1 个月前 | |
🐛 Fix: fail knowledge ingestion on non-retryable errors (#3778) * fix: fail knowledge ingestion on non-retryable errors * fix: preserve ingestion error response compatibility * fix: preserve task error code parsing compatibility * test: cover ingestion error handling branches | 1 个月前 | |
✨ Parameterize file split function in data-process task (#3665) * ✨ Parameterize file split function in data-process task 🧪 Add telemetry data for knowledge base * 🧪 Add test files * 🧪 Add test files * 🧪 Add test files * 🧪 Add test files | 1 个月前 | |
🧪 Add global test configuration and common fixtures for improved test, refactor test files to use pytest and improve mock handling - Converted unittest test cases to pytest format across multiple test files. - Simplified mock setups using pytest-mock for better readability and maintainability. - Removed unnecessary imports and legacy code to streamline test execution. - Enhanced test coverage for utility functions in various modules. | 8 个月前 | |
Feat hzw 20260810 (#3920) * feat:model page * feat: 接入方式优化-需要回退 * ♻️ Refactor: unify model edit dialog onto ModelAddDialogV2 - ModelAddDialogV2: add model prop for edit mode (prefill custom form from existing model, default to 自定义接入 tab, call updateSingleModel/updateManageTenantModel on submit instead of add) - modelConfig.tsx: handleCardEdit now renders ModelAddDialogV2 with model prop instead of ModelEditDialogV2 * Feature: model capacity auto-lookup, custom param validation, and type inference fixes Capacity suggestion (catalog -> bundled LiteLLM JSON -> default): - model_capacity_suggestion_service: remove LLM self-report fallback (dead code, providers without web search always return null); add _litellm_lookup reading the bundled LiteLLM model_prices_and_context_window.json (3818 models) as the second source; match by provider/name and bare-name final segment, preferring entries with both max_input and max_output - main Dockerfile: bundle LiteLLM JSON at build time (works offline / no VPN) - suggest_capacity: try LiteLLM bare-name match even when provider is uninferable (base_url still empty while typing) Model add/edit dialog (V2): - custom tab: debounced auto-lookup on model name (500ms) fills empty capacity fields only; configured tag reflects lookup result, not display_name presence - connectivity probe no longer mutates capacity fields; probe carries temperature/top_p/extra_params so invalid __custom__ params surface at verify time as a 400 instead of failing at runtime - __custom__ numeric strings coerce to numbers (top_k=50, not 50); fix .trim crash on numeric values in edit mode - batch tab: add client-side model name search filter; per-row connectivity fills capacity from suggestion - edit mode: onConnectivityChange reports probe result back to the model list so connect_status refreshes in place Model config list: - verifyModels now probes ALL models in the list (was: default-model selection only), updating rows in parallel - remove misleading provider model-count badge; fix ModelConnectStatus duplicate declaration; drop unused DEFAULT_* imports Type inference (_infer_model_type_from_name): - match full name AND final path segment so repo-prefixed ids from aggregators (BAAI/bge-m3, Pro/..., deepseek-ai/...) classify correctly - add contains-based rules aligned with develop TokenPony classifier: embedding/rerank/stt/tts mid-name, vlm3 (omni/video), vlm2 (image-gen keywords), vlm (vision/visual/ocr/vl-segment) Connectivity service: - port develop _embedding_url_candidates multi-candidate probe (normalized /embeddings URL first, then as-given) for embedding/multi_embedding - _config_to_context: __custom__ KV pairs flow into extra_body at runtime - openai_llm check_connectivity probe carries inference params Type fixes: AgentDraft includes model_params_override; ModelEditDialogV2 keyMap adds vlm4; agent-prompt model override config dialog typing * Fix: rename llmModels to availableLlmModels after develop merge (useModelList API rename) * Fix: normalize rerank probe URL to the rerank endpoint The batch-import connectivity probe passed the bare provider root (e.g. https://api.siliconflow.cn/v1/) straight to the rerank adapter, which POSTs the URL as-is -> 404 -> unavailable even though the model is fine. prepare_model_dict already appends /rerank when SAVING the model, so probe-time and save-time URLs disagreed. Mirror that munging in _perform_connectivity_check: dashscope roots get the api/v1 .../services/rerank/text-rerank/text-rerank path, others get {root}/rerank. Already-normalized URLs pass through untouched. This matches the embedding probe /embeddings normalization. * Fix: carry verified connect_status into batch-created model records Batch submit requires every enabled row to pass the connectivity probe (hasUnchecked gate), but the verified available result lived only in dialog state — the create endpoints never received it, so the backend reset connect_status to not_detected on insert and the freshly imported models showed as unverified in the list. The backend already honors this (create_model_for_tenant: connect_status = payload or NOT_DETECTED; ModelRequest has the field) — only the frontend was not sending it. Thread connectStatus through addCustomModel / createManageTenantModel request bodies and set it from the row state at batch submit time. * Remove legacy modify-or-delete models button and ModelDeleteDialog The button opened a 2000-line legacy panel whose single-row edit/delete duplicated the per-row actions (and used the old V1 edit dialog), and whose only unique capability was a narrow bulk-edit (same-provider key, timeout, capacity override). Bulk delete did not exist - deletion inside the panel was still one-by-one. - drop the top-bar button (Can model:update wrapper) - drop the capacity-coverage alert action that opened the same panel - remove isDeleteModalOpen state, ModelDeleteDialog import and instance - delete the orphaned ModelDeleteDialog.tsx (ModelEditDialog stays - it is still referenced by resource-manage ModelList) * Fix: show Chinese type labels for vlm2/vlm3/vlm4 in model list The type column rendered t(`model.type.${type}`) directly, but the locale files have no model.type.vlm2/vlm3/vlm4 keys (they are keyed by semantic name: imageGeneration / videoUnderstanding / audioUnderstanding), so those rows displayed the raw id string. Add the same id-to-semantic-key mapping the add dialog uses, covering all ten types. Also aligns vlm to the dialog label (image understanding) instead of the legacy model.type.vlm wording. * Fix: address CodeQL security alerts in provider fetch and catalog endpoints SSRF (critical) in openai_provider.get_models: the operator-supplied base_url was fetched as-is. Add _validate_provider_base_url guard before the request: scheme must be http/https, host required, private / link-local / multicast / reserved IP literals rejected (cloud metadata endpoints, internal routers). Plain DNS names and the documented localhost/127.0.0.1 local-LLM exemption are allowed. Validation errors flow through the existing _classify_provider_error path as provider fetch failures. Information exposure (medium x5) in model_managment_app catalog endpoints: the exception text was interpolated into the JSON response body, which can leak stack traces / internal details to the caller. Replace with fixed messages; the exception detail is already logged server-side via logger.warning. Affected: /catalog/all, /catalog/providers, /catalog/inference_field_specs, /catalog/providers/{provider}/models, /catalog/providers/{provider}/models/{model_name}. * Fix: address Copilot review findings in tests and catalog wiring Real bugs (blocked the unit-test CI job): - test_model_consts.py: corrupted multi-byte string literal (truncated mid-character) made the module unparseable; restore the intended default title assertion. - test_model_catalog_loader.py: read p.provider_key / get_model_profile(p.provider_key, ...) but the Pydantic ModelCatalogProviderInfo model exposes id; align to the actual field. Latent issues flagged by review: - model_managment_app.py: the catalog-import fallback handler logged via the module logger before it was initialized, raising NameError on the graceful-degradation path; log via logging.getLogger directly. - useModelCatalog.ts + types: provider summary declared provider_key/supported_model_types while /catalog/providers serializes id/supported_types (Pydantic dump). Align the frontend type and hook maps to the wire names. ModelCatalogModelEntry.provider_key stays as is - the /catalog/all model entries do carry provider_key. * Fix: catalog loader test must accept normalized model entries The loader normalizes each catalog model entry into a ModelCatalogProfile instance (not a raw dict), so asserting model_type in model_cfg fails with TypeError on the Pydantic model. Accept both the raw dict form and the normalized instance via getattr. Verified in-container: 8 passed. * Fix: sync model health tests with inference params and rerank URL normalization * Fix: sync model tests with unified provider dispatch and consts.model imports * Fix: register consts.model and nexent.core.agents stubs in tests blocked by model_management_db import chain * Fix: harden provider SSRF guard with post-DNS IP validation and restore TLS verification * Fix: resolve SonarCloud quality gate findings (complexity, log injection, warnings, duplication) * Fix: reduce cognitive complexity and eliminate duplicated blocks flagged by SonarCloud * Fix: remove legacy dialogs duplicated by V2, sanitize catalog logging, resolve remaining SonarCloud issues * Fix: sanitize catalog version with json.dumps and clear remaining SonarCloud issues * Fix: stop logging file-derived catalog version and flatten handleSave max-tokens logic * Fix: resolve SDK httpx Timeout class for httpx2-based OpenAI builds * Fix: route capacity suggestion through managed thread pool and make stopwords loading race-tolerant --------- Co-authored-by: hzw <hzw@qq.com> Co-authored-by: ljy <ljy@DESKTOP-65OBISN.(none)> | 18 天前 | |
feat(logging): 新增模型调用日志分类与路由能力 (#3952) * feat(logging): 新增模型调用日志分类与路由能力 1. 新增model_call日志分类,将SDK模型层日志与系统日志分离 2. 配置运行时服务日志同时包含runtime和model_call分类 3. 为core_agent、openai_llm等模型相关日志添加专用日志器 4. 新增.gitignore规则忽略.serena目录 5. 移除run_agent.py中多余的DEBUG日志级别设置 6. 完善.env.example日志配置注释 7. 新增完整的模型日志路由测试用例 * feat(logging): route context_evidence logger into model_call file - Add "context_evidence" to MODEL_CALL_LOGGERS so the run-level "Agent loop context evidence" record lands in the model_call category file (console + file_model_call, propagate=False) - Extend whitelist coverage and routing regression tests Co-authored-by: ZCode <noreply@zcode.ai> Generated-by: glm-5.3-flash * refactor(test): deduplicate model_call routing regression tests - Merge test_dictconfig_routes_model_records_to_dedicated_file and test_configure_logging_routes_model_records_to_dedicated_file into one parametrized test (ids: dictconfig / configure_logging) - Shared log+assert body extracted to _log_and_assert_routing helper; per-path setup moved to module-level _apply_* functions Co-authored-by: ZCode <noreply@zcode.ai> Generated-by: glm-5.3-flash * feat(logging): land model input/output body records in model_call file - Pin the MODEL_CALL_LOGGERS whitelist to DEBUG in both the dictConfig "loggers" section and configure_logging bind/unbind, and widen the file_model_call handler to DEBUG, so MODEL INPUT PARAMETERS logged at DEBUG on model_call.core_agent is no longer dropped by root INFO - Add the symmetric MODEL OUTPUT body record in core_agent - Merge the core_agent module logger into the model_call.core_agent namespace so every core-agent record routes to the model_call file instead of runtime; verified end-to-end (model records land only in model_call, runtime records unaffected, 41 logging tests pass) Co-authored-by: ZCode <noreply@zcode.ai> Generated-by: glm-5.3-flash * test: 增加核心代理日志记录相关的测试用例并添加调试日志 在 core_agent 的运行逻辑中添加调试日志以记录新任务,同时为日志记录功能新增多项测试,包括验证模型输出是否写入 model_call 日志、日志记录器名称是否保持在指定命名空间、日志参数是否正确记录到文件和面板等,确保日志功能符合预期且敏感数据被正确脱敏。 * fix(core_agent): 修复模型输出日志记录时未读取最新值的问题 调整日志记录的位置,确保在记录模型输出前已完成 model_output 的赋值,避免记录到空值或旧值 * refactor(logging): 将模型调用日志级别调整为跟随根日志级别 调整模型相关日志的级别设置,不再单独固定为DEBUG,而是跟随根日志级别。同时修改SDK中的模型输入、输出和任务日志从DEBUG级别改为INFO,确保在默认根日志级别为INFO时这些关键模型日志能正常输出。更新测试用例以匹配新的日志级别配置,同时修改日志配置文件中的相关注释和设置,使日志行为更符合预期,避免关键模型日志在默认配置下被丢弃。 --------- Co-authored-by: ZCode <noreply@zcode.ai> | 5 天前 | |
feat(memory): Dreaming and versioned long-term memory (#3509) * feat(memory): implement Dreaming consolidation flow * fix(memory): skip previously promoted Dreaming candidates * fix(memory): satisfy Dreaming quality checks * test(memory): verify Dreaming against PostgreSQL * test(memory): simplify Dreaming exception assertion * feat(memory): complete Dreaming consolidation * fix(memory): remove unsafe JSON fence regex * ci(sonar): exclude duplicated Dreaming DDL * ci(sonar): configure automatic analysis scope * feat(memory): schedule automatic dreaming * fix(memory): show dreaming schedule without agents * refactor(memory): make dreaming user scoped * fix(memory): revive deleted dreaming schedules * fix(memory): recreate deleted dreaming schedules * feat(memory): preserve dreaming source metadata * refactor(memory): unify long-term context reads * test(memory): stub dreaming config constants * chore(memory): narrow dreaming deployment scope * test(frontend): isolate Playwright from production build * feat(dreaming): per-user thresholds, clear/undo LTM, compression waterfall, i18n Backend: - Add per-user configurable dreaming thresholds (min_score, min_recall_count, min_unique_queries) stored in memory_dreaming_schedule_t - Add clear/undo-clear endpoints for long-term memory with deactivated_version_id - Implement 3-tier compression waterfall: not_needed -> semantic -> mechanical_fallback - Add threshold columns to DB model and migrations (v2.5.0) - Add timeout handling for stuck dreaming progress Frontend: - Add threshold configuration UI in Dreaming tab (per-user editable) - Implement clear/undo flow with Option A: show cleared version card (V{n} (已清空) | 0 chars | no compression) instead of empty state - Add version history dropdown in current LTM section - Add comprehensive i18n support (en + zh) for all Dreaming UI elements - Fix expand/collapse with collapsible mode - Adjust layout to 2:1 ratio (thresholds vs automatic dreaming) SDK: - Update version_builder with compression status tracking Tests: - Add/update unit tests for compressor and version builder * fix(i18n): add missing i18n keys for base settings page - Replace hardcoded '基础设置' tab label with t('memoryManageModal.baseSettings') - Replace hardcoded page title/description with i18n keys - Replace hardcoded memory ability description with i18n key - Add memoryManageModal.baseSettingsDescription (zh/en) - Add memoryManageModal.memoryAbilityDescription (zh/en) * feat(dreaming): UI improvements and version switching fixes - Rename '启用 Dreaming' to '长期记忆Dreaming算法' (i18n zh/en) - Fill threshold default values directly instead of placeholder hints - Remove parameter tags from Dreaming tab header - Add version dropdown in cleared state card (after clearing LTM) - Add version dropdown in empty state (when no active version exists) - Make expected_active_version_id optional for version activation (allows switching versions when no active version exists) - Remove unused fetchDreamingParameters call from DreamingPanel - Add DreamingConfigCards component for base settings thresholds * style(dreaming): change thresholds to 3-column layout, right-align save button * feat(memory): publish dreaming summaries as user memory * refactor(memory): finalize dreaming memory architecture * fix(memory): resolve CI regressions * refactor(memory): normalize dreaming decisions * test(memory): raise dreaming patch coverage * fix(memory): align dreaming decision evidence schema * refactor(memory): clarify fidelity literal naming | 1 个月前 | |
feat(memory): extract memories from final answers (#3860) | 29 天前 | |
🧪 Add global test configuration and common fixtures for improved test, refactor test files to use pytest and improve mock handling - Converted unittest test cases to pytest format across multiple test files. - Simplified mock setups using pytest-mock for better readability and maintainability. - Removed unnecessary imports and legacy code to streamline test execution. - Enhanced test coverage for utility functions in various modules. | 8 个月前 | |
✨ Parameterize file split function in data-process task (#3665) * ✨ Parameterize file split function in data-process task 🧪 Add telemetry data for knowledge base * 🧪 Add test files * 🧪 Add test files * 🧪 Add test files * 🧪 Add test files | 1 个月前 | |
修复监控异常上报 (#3984) * fix: preserve agent trace hierarchy and improve monitoring metadata Trace the full agent lifecycle, sandbox callbacks, child agents, and conversation title generation. Use user emails and agent display names, filter noisy spans, and add observability regression coverage. Include the current Docker build adjustments. * Trace sandbox warmup with agent monitoring metadata * Isolate lazy human interaction service in stop endpoint test --------- Co-authored-by: hhhhsc <name> | 5 天前 | |
✨ Feature: Development of Agent Workbench Features (#4010) * ✨ Feature: Development of Agent Workbench Features * ✨ Feature: Development of Agent Workbench Features * ✨ Feature: Development of Agent Workbench Features * 🐛 Bugfix: The upload_to_s3 and download_from_s3 tools do not support user configuration. * feat:add-workbench * 工作台知识库选择依据aidp开关 * feat:工作台前端风格统一优化 * fix(workbench): restore chat modes and tenant model selection * fix(workbench): restore header and system skills * fix(workbench): hide built-in skills from composer * fix(workbench): restore managed agent invocation * fix(workbench): authorize hidden system agent for HITL * fix(workbench): persist creation history and retry branches * test(workbench): align legacy Skill API mocks with creation history * feat(workbench): separate chat entrypoints and refine creation UX * fix: restore workbench attachment reuse and landing layout * feat(workbench): gate workbench with deployment flag * feat(workbench): gate workbench with deployment flag * feat(workbench): Resolved conflicts and fixed an issue where historical sessions became unavailable after deleting and recreating the agent. * feat(workbench): Fix frontend pipeline build issues. * test(workbench): fix unit test isolation * test(workbench): raise patch coverage above threshold * refactor(workbench): consolidate database migration * fix(workbench): align reasoning defaults and skill card actions * test(workbench): use complete Agent fixture for reasoning defaults --------- Co-authored-by: dongjibao2001 <332722455@qq.com> | 9 天前 | |
bugfix: remove automatic model renaming (#4009) * bugfix: remove automatic model renaming * fix: restore reasoning compatibility for test gate * test: cover reasoning wire adapters * fix: validate provider hosts before reasoning mapping --------- Co-authored-by: hzw <hzw@qq.com> | 9 天前 | |
✨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 | 1 个月前 | |
✨ 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> | 2 个月前 | |
🧪 Add global test configuration and common fixtures for improved test, refactor test files to use pytest and improve mock handling - Converted unittest test cases to pytest format across multiple test files. - Simplified mock setups using pytest-mock for better readability and maintainability. - Removed unnecessary imports and legacy code to streamline test execution. - Enhanced test coverage for utility functions in various modules. | 8 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 1 年前 | ||
| 2 个月前 | ||
| 30 天前 | ||
| 10 天前 | ||
| 11 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 22 天前 | ||
| 4 天前 | ||
| 12 天前 | ||
| 30 天前 | ||
| 26 天前 | ||
| 1 个月前 | ||
| 18 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 8 个月前 | ||
| 18 天前 | ||
| 5 天前 | ||
| 1 个月前 | ||
| 29 天前 | ||
| 8 个月前 | ||
| 1 个月前 | ||
| 5 天前 | ||
| 9 天前 | ||
| 9 天前 | ||
| 1 个月前 | ||
| 2 个月前 | ||
| 8 个月前 |