Repository navigation
Merge hotfix/v2.8.3 into develop - #4273
Merged
Merged
Conversation
Hotfix/v2.8.1
个人信息栏的展示与复制此前共用同一个 access_key,而数据库层已无条件掩码, 导致权限层虽判定 can_copy=True,复制出的仍是 nexent****11bb 形式的掩码值。 - token_db.list_tokens_by_user 新增 mask 开关(默认仍掩码),权限层显式取存储明文 - 权限层拆分展示值与可复制值:access_key 保持角色语义,新增 masked_access_key 供展示 - 统一复用 mask_access_key,create_token 同步返回 masked_access_key - 前端展示用 masked_access_key、复制用 access_key,两者不再耦合 验证:test_token_db 27 passed、test_user_management_service 93 passed、 test_user_management_app 76 passed;活集群 ADMIN 可复制完整 key、USER/VIEWER 仍为掩码。
…4262) * feat(frontend): separate homepage branding from browser tabs Add optional localized homepage titles and independent logo uploads with system-logo fallback. Keep blank homepage titles empty and preserve legacy branding fields and upload aliases. Keep browser tabs on system branding with a blank initial title and transparent favicon until the system logo loads. Remove competing metadata to prevent login and navigation resets. Keep homepage logos at a fixed size, clip the collapsed sidebar, and shift images right by 4px. Validate with 33 component tests, 22 Node tests, formatting and copyright checks. Formal D4 execution remains blocked by the missing isolated test-home; full asset validation also has an existing missing ConversationResumeBranch UT reference. * fix(frontend): initialize homepage title and adjust logo spacing Default unconfigured localized homepage titles to Nexent while preserving legacy titles and explicitly cleared values across restarts. Seed the built-in locale defaults and move the homepage logo 2px left. Add six startup regression variants and update branding test traceability. Validation: 33 component tests and 28 Node tests passed; formal runtime verification remains blocked by the missing isolated test-home. * fix(frontend): clarify application and navigation branding labels Use application logo/name and navigation logo/title in Chinese and English UI copy. Keep display-location annotations and explain application branding usage and navigation logo fallback. Preserve existing implementation names, translation keys, stored settings and API contracts. Update accessible-name test selectors and traceability. Validation: 5 component tests, source-only TypeScript, formatting and copyright checks passed; existing formal runtime blockers remain. * fix(frontend): show branding locations in hover hints Move parenthesized display locations into small help buttons beside application and navigation branding labels. Support hover and keyboard focus while preserving usage text and existing configuration identifiers. Validate with 8 component tests, source-only TypeScript, lint, formatting and copyright checks. Capture real browser evidence outside Git; existing formal runtime prerequisites remain unavailable. --------- (cherry picked from commit 556cdbe) Co-authored-by: JeffWu <45140512+jeffwu-1999@users.noreply.github.com>
…nd recall (#4264) * chore: bootstrap action history compaction review * fix(agent): deduplicate execution history and add cached summary recall * fix(agent): bound recalled output by remaining context * fix(agent): expose history reader and load committed execution records * test: align stream regression fixtures with execution history * ci: sync unit workflow from develop without merging branch * fix(agent): clarify runtime result ownership and align UT dependencies * fix(ci): isolate test index and complete history regression coverage * fix(agent): preserve host history reader, failure masking and standalone compaction * fix(agent): retain fallback instructions before execution contract * fix(context): retain legacy tool names and argument records
* feat(a2a): 将A2A代理调用超时时间调整为15分钟并统一配置 * ci(workflows): sync pipeline configs from develop Port auto-unit-test.yml, nexent-daily-full-test.yml and sdk_publish.yml from origin/develop to pick up runner label parameterization, uv managed Python setup, Codecov CLI cache verification, e2e runner for daily full test, and pip-based build for SDK publish. Co-authored-by: Trae <noreply@trae.ai> Generated-by: GLM-5.3-Flash * build(deps): 同步 backend/sdk pyproject.toml 与 origin/develop 一致 - backend/pyproject.toml: CPU 索引定义、index-by-name 与索引策略、 本地 SDK 路径映射、data-process 的 nexent[data_process,performance]、 test 的 nexent[dev]、pytest 与 pytest-asyncio 版本约束 - sdk/pyproject.toml: 配套 uv 索引配置、pytest 固定 9.1.1、 unstructured[all-docs] 固定 0.18.14、移除旧的 999.0.0 依赖覆盖 Co-authored-by: Trae <noreply@trae.ai> Generated-by: glm-5.3-flash * fix(test): 稳定化 docker 端口分配失败用例,兼容容器化 runner test_start_container_find_port_failure 依赖 _is_running_in_docker() 返回 False 才会执行到 find_free_port;在容器化 runner 上该检测为 True,用例走了容器内分支导致断言失败。显式 patch 该检测为 False, 并补齐文件缺失的版权头。 * Chore(deploy): 调整 Dockerfile 中 sdk 复制和安装的顺序 为了让 uv sync 能通过 [tool.uv.sources] 正确解析本地 sdk,提前复制 sdk 目录;同时将 sdk 的性能 extras 安装移至后续步骤,避免依赖解析冲突。 --------- Co-authored-by: Trae <noreply@trae.ai>
jeffwu-1999
requested review from
Dallas98,
Jasonxia007,
WMC001,
YehongPan and
hhhhsc701
as code owners
October 31, 2026 06:15
Merge origin/develop into hotfix/v2.8.3 keeping develop's refactored layout (#4160) while carrying the v2.8.3 fixes onto the new paths. Path migrations (develop moved, hotfix edited the old location): - A2A timeout constant -> contracts/constants/environment.py; used by management/services/agent/preparation/resources.py (ex backend/agents/ create_agent_info.py). - final_answer_mode northbound parameter -> gateway/api/northbound.py (ex apps/northbound_app.py) and runtime internal /internal/northbound/run route; the public /agent/run route stays delta-only as designed. _execution_agent_chunks (execution.py): - Kept develop's finalize_assistant_projection pipeline and added a final_answer_override so complete mode persists the recomputed root answer. - Execution history: build the run-local ExecutionHistory, bind execution_result units in the stream loop, finalize references before the projection, and mark units persisted after a successful settle. - Complete mode: buffer units even without a message row, suppress incremental final_answer events, emit the single reconstructed answer at finalization, and treat a missing message row as a terminal failure after the projection settles. Everything else (Dockerfile, frontend sources/activity sync, SDK core_agent MCP failure handling, affected tests) follows develop, with the hotfix-only assertions restored where develop lacked them. Verified locally: 550 services + 88 sdk + 14 app tests pass, including the northbound final-answer-mode suite and the execution-history regressions.
The merge commit 12cca86 used 'git add -A' and swept local-only artifacts into the tree: agent workspace data (.workbuddy), local Elasticsearch/Redis runtime dirs, local deliverables, scratch commit message files, release-note drafts, a local compose override, and two local-only e2e case folders that no remote branch carries. Remove them from the index (files stay on disk) and ignore them in .gitignore so future merges cannot pick them up again.
Three leftovers from the merge still imported from the pre-refactor modules and broke CI collection: - backend/infrastructure/http/a2a.py imported the A2A timeout constant from consts.const; switch it to contracts.constants.environment. - test_a2a_http_client.py did the same in two places. - test_execution_result_read_db.py imported database.conversation_db; switch it to management.db.conversation.repository. Also collapse the A2A_AGENT_INVOCATION_TIMEOUT_SECONDS assignment in contracts/constants/environment.py to a single physical line: the contracts architecture test requires one assignment per line for both constant files. Verified locally: a2a client/relation/ssl suites 48 passed when run per file (the 12 cross-file failures reproduce on the develop baseline too and are a pre-existing isolation issue, not from this change); execution-result-read-db and contracts architecture suites pass.
The merged _stream_agent_chunks attaches its run-local execution history to agent_run_info.observer before iterating run chunks. The real AgentRunInfo always carries an observer, but the background-stream test built its SimpleNamespace without one, so every case failed with AttributeError. Add a Mock observer to the fixture.
Jasonxia007
approved these changes
Oct 31, 2026
Codecov Report❌ Patch coverage is 📢 Thoughts on this report? Let us know! |
YehongPan
approved these changes
Oct 31, 2026
jeffwu-1999
pushed a commit
that referenced
this pull request
Nov 3, 2026
将 develop 同步进 hotfix/v2.8.4,消除 PR #4290 的全部冲突。 / Sync develop into hotfix/v2.8.4, clearing every conflict of PR #4290. 背景:v2.8.3 内容此前经 #4273 以 squash 方式进入 develop,提交历史未 接上,PR #4290 因此把整条发版线识别为全新变更(25 处冲突均为历史对 账,非真实冲突)。 / Background: v2.8.3 content entered develop via the squashed #4273 without commit history, so PR #4290 presented the whole release line as new (all 25 conflicts are history reconciliation). 带入的 PR / PRs carried: - #4288 v2.8.4(含 #4283 SQL 迁移简化、#4287 回滚 #4277)——对 develop 的净内容变更为离线包流水线固定 ubuntu-24.04 执行器;#4283 的 SQL 在 develop 上字节一致,#4287 的回滚对 develop 为空操作。 Net content change versus develop is only the offline workflow runner pin; #4283's SQL is byte-identical on develop and #4287's revert is a no-op there. - #4272 / #4264 / #4271 / #4265 / #4262 / #4261 / #4260(v2.8.3 线)—— 内容已由 #4273 在 develop 发布,本次接入真实提交历史,后续合并不再 重复冲突。 / Content already released via #4273; this merge attaches the real commit history so future merges stop re-conflicting. 冲突处理 / Conflicts: - modify/delete(backend/agents/create_agent_info.py、backend/apps/ northbound_app.py、backend/consts/const.py)取 develop 的删除,#4160 重构已迁移至新路径。 / Took develop's deletions for old-path files (#4160 moved them). - 内容冲突一律取 develop 侧(等价内容已在迁移后路径上演进),包括 execution.py、Dockerfile、repository.py 等。 / Took develop's side for content conflicts; the equivalent content already lives on the migrated paths, including the byte-newer repository.py with the correct management.db.models import. - workflow 由 git 自动合并:保留 develop 的组件列表(#4248 已移除 supabase),采纳 ubuntu-24.04 钉版。 / Workflow auto-merged: develop's component list (no supabase after #4248) with the pinned runner. 验证 / Verification: 合并树与 origin/develop 的差异仅剩 workflow 的 runs-on 一行;核心 UT(agent_service、northbound final-answer、 background stream、execution-result-read-db 共 532 项)通过。 / The merged tree differs from origin/develop by the runs-on line only; core suites (532 tests) pass.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Merge hotfix/v2.8.3 into develop
合入 v2.8.3 hotfix 线上的修复,同步 develop 上的重构与新特性。 / Brings the
v2.8.3 hotfix line back into develop, together with develop's refactors
and features picked up by this merge.
本次从 hotfix/v2.8.3 带入 develop 的 PR / PRs carried from hotfix/v2.8.3:
and recall 执行历史去重与输出压缩召回
northbound Chat API (final_answer_mode) 北向 Chat API 流式向前兼容
(feat(frontend): separate homepage branding from browser tabs #4255 的 v2.8.3 backport)
previews (feat(frontend): group MCP tools and unify description hover previews #4208 的 v2.8.3 backport)
develop 侧已被本合并吸收的 PR / develop-side PRs absorbed by this merge:
#4160 #4177 #4188 #4198 #4208 #4211 #4213 #4214 #4215 #4217 #4218 #4219
#4220 #4229 #4234 #4237 #4239 #4241 #4242 #4243 #4244 #4246 #4250 #4255
#4256 #4257 #4258 #4259 #4261 #4270 (含 profile/model 契约 #4078 #4118 #4119)
冲突及解决 / Conflicts and resolutions (16 files):
与 run.py。develop 已将落库抽为 finalize_assistant_projection 管道并引入
BackgroundExecutionState。以 develop 结构为骨架,hotfix 的执行历史
(ExecutionHistory/bind_execution_result_units/mark_persisted) 与
final_answer_mode 逻辑插入对应位置;persistence.py 增加
final_answer_override 参数,保证 complete 模式落库的是重投影后的完整根答案。
gateway/api/northbound.py 与 runtime 的 /internal/northbound/run;
公开 /agent/run 路由保持 delta-only 不传参(hotfix 原设计)。
使用点迁至 management/services/agent/preparation/resources.py。
source-metadata-performance yaml 取 develop 完整版。
取 develop 完整版。
test_context_item.py 保留 hotfix 的 fail(_self) 类级 patch 形式。
contracts.constants.environment stub 机制,A2A 超时默认值 900.0 挂载其上。
取 develop 的分层 COPY 缓存优化。
验证 / Verification: services 550 + sdk 88 + app 14 本地测试全部通过,
含北向 final-answer-mode 全套、执行历史回归与 agent_service 全量。