feat(ce): enforce edition boundaries and harden local readiness - #19
Merged
Conversation
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.
Summary / 概述
This maintainer CE synchronization combines the complete public-facing changes
from upstream commits
286fcae3,a97af08d,561f0159, and9a6264a7.What changed
enterprise-only licensing, API key, organization/team/role, datasource,
skill-distillation, and provider-specific implementation modules instead of
shipping them behind runtime checks.
models, repositories, projects, MySpace, sites, agents, external knowledge,
API schemas, and frontend contracts. This keeps the personal product flows
complete without importing enterprise packages.
domain pack is treated as an effective opt-out in chat context construction.
automation,skill-manager, andsitesplugins on the first CE startup. A persistent database marker makes the
bootstrap idempotent and preserves a user's later uninstall choice.
startup waits for all registered ports, verifies the three default-plugin
tool contracts, and fails readiness when the advertised toolset is missing.
Python logs use a legacy code page. The launcher now forces UTF-8, while CLI
status output safely degrades without changing plugin or template outcomes.
current edition, while preserving plugin-owned and user-owned MCP entries.
release staging contracts, and the English and Chinese README capability
posters.
Why
CE previously relied on runtime visibility checks in several areas while still
carrying enterprise implementation code in the generated source tree. That
made the open-source boundary harder to audit and left room for schema, route,
catalog, and frontend contracts to drift between editions.
The local startup path also treated MCP sidecars as best-effort and default
plugins as an onboarding choice. A desktop process could therefore pass its
health check while one of the capabilities presented as available was missing.
Persisted databases could additionally retain removed commercial MCP rows after
an edition upgrade.
The packaged Windows launcher redirects backend output to a log file. On
systems where Python selected GBK for that redirected stream, a status symbol
raised
UnicodeEncodeErrorinside the plugin bootstrap transaction and turneda successful installation into a fatal readiness failure.
User and maintainer impact
feature set, with explicit extension interfaces where editions differ.
skill management, and site publication without a separate marketplace step.
reachable, and local control-plane ports aren't exposed to the LAN.
system code pages, and the resulting service log remains valid UTF-8.
plugin configuration.
consistently honored by the chat runtime.
Validation
HUGAGENT_RELEASE_BUILD=1 python scripts/build_ce.py --import-check --pytest-check --frontend-check17 passed
node --test desktop/scripts/ce-payload.test.mjs: 6 passed/healthwith UTF-8environment overrides deliberately removed; the redirected log decoded as
UTF-8 and contained the completed default-plugin bootstrap status
cargo fmtgit diff --checkpassedscreened before their hashes were added to the CE binary allowlist
Related issue / 关联 Issue
N/A
Type of change / 变更类型
document/**,README*.md)examples/**).github/**)Checklist / 检查项
document/en/**anddocument/zh-CN/**where applicable. 双语文档已同步更新(如适用)。