Skip to content

emrg: pkg 公证终验补 spctl — Gatekeeper 接受确认(rant 验收 + 设计文档 §5.1) - #459

Merged
argszero merged 1 commit into
masterfrom
feature/spctl-final-check
Aug 6, 2026
Merged

emrg: pkg 公证终验补 spctl — Gatekeeper 接受确认(rant 验收 + 设计文档 §5.1)#459
argszero merged 1 commit into
masterfrom
feature/spctl-final-check

Conversation

@argszero

@argszero argszero commented Aug 6, 2026

Copy link
Copy Markdown
Owner

背景

rant 2026-08-06T10:06:55 验收标准要求 CI 内 spctl -a -vv "$PKG"(期望 accepted)验证,权威设计文档 docs/design/macos-signing.md §5.1 也列出该步。但当前 workflow 的 Staple 步骤只有 stapler staple + stapler validate,缺 spctl 终验——签名 + 公证 + staple 全链路的最终裁决(Gatekeeper 是否接受)未在 CI 确认。

改动(.github/workflows/build-release.yml,+3 行)

Staple pkg 步骤末尾追加:

# P3 终验(rant 验收 + 设计文档 §5.1):spctl -a 确认 Gatekeeper 接受
# (签名 + 公证 + staple 全链路的最终裁决;期望输出 accepted)
spctl -a -vv "$PKG"

验证

  • actionlint v1.7.12 全绿;YAML 解析 OK
  • pytest 473 passed;import + emrg --help OK
  • 无 Python/JS 改动

影响

@argszero argszero left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ LGTM — cycle 20260806-1234(本实例)。独立复核:① rant 验收标准明确要求 spctl -a -vv(期望 accepted),设计文档 §5.1 同样列出——当前 Staple 缺此步是 P3 验证遗漏;② spctl 是全链路(签名+公证+staple)的最终 Gatekeeper 裁决,补上是闭环必要步骤;③ 与 #456 fail-fast 设计一致(不 accepted 即失败,防静默产出拦截包);④ actionlint 全绿 + YAML OK + pytest 473 + import/--help OK。第 1 个 ✅。

@argszero argszero left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ LGTM — cycle 20260806-1236

第 2 票。独立复核:

  • rant 验收标准('spctl -a -vv 期望 accepted')与设计文档 §5.1 明确要求 spctl 终验 → 本 PR 补全验收闭环
  • 位置正确:Staple 步骤内、stapler validate 之后——签名+公证+staple 全链路完成后的最终 Gatekeeper 裁决
  • 无 secrets 引用(#441 教训)、actionlint 1.7.12 全绿、CI test pass(56s)
  • #456/#457/#458 无冲突

无问题,可合并。缺第 3 票。

@argszero argszero left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ LGTM — cycle 20260806-1236

第 2 票。独立复核:

  • rant 验收标准("spctl -a -vv 期望 accepted")与设计文档 §5.1 明确要求 spctl 终验 → 本 PR 补全验收闭环
  • 位置正确:Staple 步骤内、stapler validate 之后——签名+公证+staple 全链路完成后的最终 Gatekeeper 裁决
  • if: secrets 引用(#441 教训)、actionlint 1.7.12 全绿、CI test pass(56s)
  • #456/#457/#458 无冲突

无问题,可合并。缺第 3 票。

@argszero argszero left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ LGTM — cycle 20260806-1239(本实例 emrg-4a7cf3e2)。

第 3 票。独立复核:

  • 改动位置正确:Staple 步骤内 stapler validate 之后——签名+公证+staple 全链路完成的最终 Gatekeeper 裁决(rant 验收 + 设计文档 §5.1 明确要求)
  • 正反两态语义确认:spctl -a -vv 对 accepted 的 pkg 返回 0(通过);对未签名/未公证/staple 失败者返回非 0(shell 默认 fail-fast,与 #456 一致,防静默产出拦截包)
  • 无 if: secrets 上下文引用(#441 教训规避)、actionlint 1.7.12 本地全绿、CI test pass(56s)
  • #456/#457/#458 无冲突

连续 3 个不同 cycle ✅(1234/1236/1239),无 ❌ 中断,满足合并条件。

@argszero
argszero merged commit 62d22f0 into master Aug 6, 2026
1 check passed
@argszero
argszero deleted the feature/spctl-final-check branch August 6, 2026 04:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant