fix: make Agent updates reliable and visible
Cross-platform packages / Validate source (push) Canceled after 0s
Cross-platform packages / Authorize desktop packaging (push) Canceled after 0s
Cross-platform packages / linux arm64 (push) Canceled after 0s
Cross-platform packages / macos arm64 (push) Canceled after 0s
Cross-platform packages / windows arm64 (push) Canceled after 0s
Cross-platform packages / linux x64 (push) Canceled after 0s
Cross-platform packages / macos x64 (push) Canceled after 0s
Cross-platform packages / windows x64 (push) Canceled after 0s
Cross-platform packages / Publish GitHub and OSS release (push) Canceled after 0s
GoodBuddy Agents / Validate Agent source (push) Canceled after 0s
GoodBuddy Agents / Build Linux arm64 Agent (push) Canceled after 0s
GoodBuddy Agents / Build Linux x64 Agent (push) Canceled after 0s
Cross-platform packages / Validate source (push) Canceled after 0s
Cross-platform packages / Authorize desktop packaging (push) Canceled after 0s
Cross-platform packages / linux arm64 (push) Canceled after 0s
Cross-platform packages / macos arm64 (push) Canceled after 0s
Cross-platform packages / windows arm64 (push) Canceled after 0s
Cross-platform packages / linux x64 (push) Canceled after 0s
Cross-platform packages / macos x64 (push) Canceled after 0s
Cross-platform packages / windows x64 (push) Canceled after 0s
Cross-platform packages / Publish GitHub and OSS release (push) Canceled after 0s
GoodBuddy Agents / Validate Agent source (push) Canceled after 0s
GoodBuddy Agents / Build Linux arm64 Agent (push) Canceled after 0s
GoodBuddy Agents / Build Linux x64 Agent (push) Canceled after 0s
Valid Agent packages could be rejected when packaged trusted-key JSON used CRLF, and Settings could not show whether a newer compatible Agent existed. Registry formatting is now parsed independently of cryptographic trust, and Settings reads only the signed catalog to report local and latest versions. New installations use a credential-free local Ollama-compatible profile. The v20 migration changes only untouched historical defaults, while explicit profiles and legacy environment aliases remain compatible. Magic Notes count badges no longer shift navigation rows. Release note: 修复 Agent 下载兼容性并在设置中显示更新状态;新安装默认连接本地模型,保留显式用户配置;魔法笔记待办数字不再改变侧栏菜单高度。
This commit is contained in:
@@ -38,12 +38,12 @@ import {
|
||||
canonicalJson
|
||||
} from '../../shared/agent-protocol/canonical'
|
||||
import {
|
||||
agentReleaseKeyRegistrySchema,
|
||||
type AgentArchitecture,
|
||||
type AgentReleaseKeyRegistry
|
||||
} from '../../shared/agent-installation-contracts'
|
||||
import {
|
||||
canonicalAgentReleaseKeyRegistryBytes,
|
||||
parseAgentReleaseKeyRegistry,
|
||||
parseAgentReleaseKeyRegistryBytes,
|
||||
verifyAgentBundleDirectory,
|
||||
type AgentVerificationEnvironment,
|
||||
type VerifiedAgentBundle
|
||||
@@ -156,8 +156,11 @@ export async function verifyExtractedAgentPackage(options: {
|
||||
'Agent package is not compatible with this GoodBuddy version'
|
||||
)
|
||||
}
|
||||
const registry = parseCanonicalRegistry(registryBytes)
|
||||
const trustedRegistry = agentReleaseKeyRegistrySchema.parse(
|
||||
const registry = parseAgentReleaseKeyRegistryBytes(
|
||||
registryBytes,
|
||||
'Agent package key registry'
|
||||
)
|
||||
const trustedRegistry = parseAgentReleaseKeyRegistry(
|
||||
options.trustedRegistry
|
||||
)
|
||||
verifyDescriptorSignature(
|
||||
@@ -545,20 +548,6 @@ function parseCanonicalDescriptor(
|
||||
return descriptor
|
||||
}
|
||||
|
||||
function parseCanonicalRegistry(bytes: Buffer) {
|
||||
const registry = agentReleaseKeyRegistrySchema.parse(
|
||||
JSON.parse(
|
||||
new TextDecoder('utf-8', { fatal: true }).decode(bytes)
|
||||
)
|
||||
)
|
||||
if (
|
||||
!canonicalAgentReleaseKeyRegistryBytes(registry).equals(bytes)
|
||||
) {
|
||||
throw new Error('Agent package key registry is not canonical')
|
||||
}
|
||||
return registry
|
||||
}
|
||||
|
||||
function verifyDescriptorSignature(
|
||||
descriptor: AgentPackageDescriptor,
|
||||
descriptorBytes: Buffer,
|
||||
|
||||
Reference in New Issue
Block a user