Repository navigation
merge: sync feat/3.0.0 into Shanghai Electric - #2525
Merged
mehrocc merged 908 commits intoOct 27, 2026
Merged
Conversation
* feat/3.0.0: (623 commits) docs(frontend): consolidate acceptance cases and UI migration scope fix(frontend): vendor verified SheetJS archive for offline installs fix(platform): restore application copy error handler import docs(runtime): record 116 Docker single-app acceptance fix(runtime): allow verified control ingress through Docker isolation docs(vibe): record K8s single-app deployment acceptance [CI SKIP] fix(open-api): load candidate credential server defaults docs(preview): record final regression and acceptance scope fix(preview): harden citation reopening and shared dev modules refactor(preview): remove legacy copies and verify shared entry points fix(runtime): compare canonical host firewall parent jumps refactor(citation): share reference lists and document previews refactor(citation): unify parsing and document resource contracts refactor(preview): share PDF rendering with host editing overlays docs(vibe): record release integration and focused checks docs(vibe): pin closeout handoff to source revision feat(vibe): finish runtime governance and security closeout fix(vibe): complete secret declaration summaries and empty-value controls docs(vibe): close remaining design findings and record focused validation feat(vibe): add encrypted app environment settings and confirmed rebuild ...
A run where the user picked html only still wrote the report twice: the "3a(始终)" rule made the model produce output/<name>.md first and the html second (cofco session a4b4a014: 143 s + 152 s of a 563 s run). The markdown file is the source of export_docx / export_pdf and the only file the citation audit reads, so it is now skipped exactly when html is the sole format and the run has no knowledge base or web search. That half of the condition is resolved when the prompt is built; the model only applies the user's format choice. write_file stores whatever it is given, so the model never learned that its page pulled a CDN script, referenced output/x.png (the srcDoc preview has no base URL), threw on load or overflowed a phone. check_html closes that loop: a static pass for non-inline resources, an empty body and missing head metadata, and a best-effort headless-Chromium pass for script errors, JS fetches, broken images, overflow and hangs, with a desktop screenshot in scratch/. It is bound with the export tools, kept out of the researcher, and degrades to the static pass where no browser can launch. Only ERROR blocks delivery; the pass verdict is printed by the tool alone. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…ations The deliverable prompt can only say "self-contained HTML"; the design method and a working page skeleton have to come from somewhere. html-report follows the existing pack layout and adapts two Anthropic skills (Apache-2.0, license kept): - frontend-design gives the method: ground the page in its reader and job, write a short design plan, review it against a list of generated-page defaults, keep one accent, hold a quality floor. Rewritten for Chinese report pages, where readability outranks a distinctive look. - web-artifacts-builder gives the idea of prebuilt components inlined into one file. Its React/Vite/Parcel build needs node and the network at bundle time, so the pack ships the offline equivalent instead: assets/report-base.html with verdict, findings, comparison table, metrics, tags, bars, timeline, dark and print styles, checked desktop/phone/dark by eye and by check_html. The pack needs no code executor. When one is bound, scripts/svg_chart.py draws a matplotlib chart and writes the SVG into the page's marker itself, so the model never re-emits 10-30 KB of SVG. Skills mount strictly by selection, so the seeder now reads metadata.default-checked and applies it when it first creates the row; the administrator owns the flag from then on. The slug and every customer-readable file carry no platform brand, guarded by a test. check_html no longer counts SVG labels as small text: their computed size is in user units, before the viewBox scales them. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
In the first real run the comparison table's element column wrapped four-character names onto two lines at desktop width. A 6.5em floor keeps them on one line; long labels still wrap. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…to task mode
The workbench vector model tooltip described uses that no longer exist
(workbench file retrieval, Linsight SOP retrieval). The model is now only
used by knowledge spaces: new spaces take it, and changing it rebuilds
every knowledge space. Say that, and spell out the rebuild in the change
confirmation.
Rename the remaining Linsight labels on this page to task mode, write ASR
and TTS tooltips that say what they do, and fix the en/ja tab and field
names ("work", "ワークモデル").
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…itched Switching the model of a row that was the daily-mode or task-mode default only replaced models[i].id and left the default ids on the old model. The next save then sent a chat_default_model_id that was no longer in models, and the backend rejected it with 10811; the task-mode default was saved silently pointing at a model outside the list. Move both defaults along with the row, matching how onRemove already clears them. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…rontend-quality-20261027
恢复公共发版线的前端质量门,供上海电气同步合并使用。原有失败包括测试代码内的中文断言数据、重复 any 断言、Unicode 空白正则的 no-control-regex 报错,以及语音测试对无参回调的旧调用。 保持运行行为:中文测试期望移到 JSON fixture;技能菜单测试改用英文测试数据;请求 silent 选项使用已有类型声明;两端正则改为等价 Unicode White_Space 属性并保留 BOM/零宽空格;语音测试按当前回调签名调用。通过 ESLint prune 命令只删除旧忽略记录,不增加 suppression。 验证:69 条相关 vitest 回归通过,包含 54 条两端空白边界测试;合并候选的完整类型检查与全量 lint 已通过(或正在收尾,结果以 CI 为准)。两个前端应用已构建成功。发布线单独检查亦在进行,最终以该 PR 的 Frontend Quality 为准。 先合入 feat/3.0.0,再由上海电气同步,遵守发布线优先的历史规则。
mehrocc
marked this pull request as ready for review
October 27, 2026 07:26
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.
将公共 feat/3.0.0(包含截至 c4f19cd 的更新)合入上海电气 feat/SEC-3.0.0-1016。公共分支只作为来源,本 PR 唯一目标为上海电气。
保留上海电气技能调用、交付文件、子工作流和临时会话清理;适配新版共享聊天、组件入口、租户模型与 Celery 注册。技能停用/删除错误避开发版线编码冲突,使用 11078/11079。合并三语源文案并生成产物。
前端检查所需的兼容修复仅保留在上海电气合并稿中。候选 a571ea7 的代码树与已验证的 1c8cf00 完全一致,后者 GitHub Frontend Quality 已通过;服务器完整 lint、typecheck、两个前端构建通过。相关前端回归 179 项、后端核心与附件归属回归 26 项通过。完整登录业务验收尚未执行。
SDK/应用工场相关 CI 存在公共来源已有失败,其目录与公共分支一致,本轮不扩大业务改动范围。目标环境为 119 A(3001),升级需先备份,并通过正式权限模型升级工具及环境验收。