fix: recover managed SSH Agent package release
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
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
Linux .gbagent extraction inherited permissive directory modes, so compound packages failed secure Runtime verification on POSIX runners. Package roots and nested bundle directories now use private modes. The production workflow now uses one GoodBuddy Agent signing identity for the Agent, bundled Runtime, outer package, and catalog. The unpublished 0.11.2 candidate is carried forward as desktop and Agent 0.11.3 without a LoongArch preview. Release note: 修复 Linux 上 Agent 包解压后无法通过权限验证的问题,并将复合包各层统一为一组 GoodBuddy Agent 发布密钥。
This commit is contained in:
@@ -67,6 +67,7 @@ const MAXIMUM_EXPANDED_BYTES = 1024 * 1024 * 1024
|
||||
const MAXIMUM_FILE_BYTES = 384 * 1024 * 1024
|
||||
const MAXIMUM_METADATA_BYTES = 1024 * 1024
|
||||
const MAXIMUM_ENTRIES = 50_002
|
||||
const PRIVATE_DIRECTORY_MODE = 0o700
|
||||
const SIGNATURE_DOMAIN = Buffer.from(
|
||||
'GoodBuddy Agent Package Descriptor Signature v1\0',
|
||||
'utf8'
|
||||
@@ -91,7 +92,10 @@ export async function extractAndVerifyAgentPackage(options: {
|
||||
const archivePath = resolve(options.archivePath)
|
||||
const destinationDirectory = resolve(options.destinationDirectory)
|
||||
await assertArchiveFile(archivePath)
|
||||
await mkdir(destinationDirectory, { recursive: false })
|
||||
await mkdir(destinationDirectory, {
|
||||
recursive: false,
|
||||
mode: PRIVATE_DIRECTORY_MODE
|
||||
})
|
||||
try {
|
||||
await extractArchive(archivePath, destinationDirectory)
|
||||
return await verifyExtractedAgentPackage({
|
||||
@@ -354,7 +358,8 @@ async function extractArchive(
|
||||
throw new Error('Agent package entry escapes its destination')
|
||||
}
|
||||
const handlePromise = mkdir(dirname(destinationPath), {
|
||||
recursive: true
|
||||
recursive: true,
|
||||
mode: PRIVATE_DIRECTORY_MODE
|
||||
}).then(async () => {
|
||||
const handle = await open(destinationPath, 'wx')
|
||||
openHandles.add(handle)
|
||||
|
||||
Reference in New Issue
Block a user