Skip to content

feat: Add verify-package skill for local packaging verification - #35

Merged
LIUXIN557 merged 1 commit into
masterfrom
feat/verify-package-skill
Sep 2, 2026
Merged

feat: Add verify-package skill for local packaging verification#35
LIUXIN557 merged 1 commit into
masterfrom
feat/verify-package-skill

Conversation

@LIUXIN557

Copy link
Copy Markdown
Collaborator

Summary

  • Add the verify-package skill: builds, stages, and locally verifies ACECode TUI/desktop packages with zero release side effects. It reuses the exact CI staging commands (cmake --install with the models_dev_registry and default_seed_bundle components), hash-checks the bundled models.dev registry and seed bundle against source assets, validates the desktop layout (flat daemon adjacency on Windows/Linux, ACECode.app bundle structure and bundled resources on macOS), and probes the staged TUI (--version, --validate-models-registry resolving from the staged share/ tree) and desktop binaries under an isolated user profile.
  • Mirror the skill byte-identically into the four skill directories (.acecode force-added since .gitignore excludes it, matching the acecode-release precedent; .claude, .codex, .agents).
  • Register a POSIX contract test tests/scripts/verify_package_test.sh as verify_package_contract in the existing if(UNIX) ctest block with LABELS "unit". It covers the full TUI/linux/darwin flows with stub executables plus negative cases (missing web/dist, mutated models.dev file set, failing registry validation, desktop exiting immediately, unconfigured build dir with --skip-build). On non-POSIX hosts it degrades to the preflight-only subset.

Closes #34

Test plan

  • python -m py_compile and a real end-to-end run on Windows against build/windows-x64-release with --skip-build: exit 0, 12 PASS + 1 SKIP (desktop launch skipped because an ACECode instance was running; single-instance guard). The TUI registry probe resolved models_dev/api.json from the staged share/ tree, proving resource staging.
  • Contract test passes locally on Windows (preflight subset; full stub flows need POSIX).
  • Linux CI: verify_package_contract full flow via ctest -L unit.
  • macOS: python3 .acecode/skills/verify-package/scripts/verify_package.py against a built ACECode.app.

Builds, stages, and locally verifies TUI/desktop packages with zero
release side effects: reuses the CI cmake install components, hash
checks bundled models.dev and seed resources, checks desktop bundle
layout, and launches the staged binaries under an isolated profile.
Mirrored to the .acecode/.claude/.codex/.agents skill directories and
covered by a POSIX contract test registered under if(UNIX).

Closes #34
@LIUXIN557
LIUXIN557 merged commit aed19b6 into master Sep 2, 2026
1 check failed
LIUXIN557 pushed a commit that referenced this pull request Sep 2, 2026
tests/scripts/verify_package_test.sh 的 darwin app bundle 用例先用 mkdir -p
创建了 .../share/acecode/seed 目标目录,随后执行

    cp -R "$fixture/assets/seed" .../share/acecode/seed

由于目标目录已存在,cp -R 会把源目录复制为目标目录下的同名子目录,
实际布局变成 seed/seed/{MANIFEST.json,seed.version,skills/demo/SKILL.md},
与 assets/seed 比对时产生 missing + unexpected,校验器只回传最后一行
unexpected,表现为:

    [FAIL] seed bundle (app bundle): seed bundle unexpected: seed/skills/demo/SKILL.md

改为复制目录内容(cp -R src/. dst/),使 app bundle 内 seed 布局与
assets/seed 一致。该失败自 verify_package_contract 引入(PR #35)起在
master 上即为 pre-existing,与子模块指针变更无关。

验证:以同一 fixture 对比两种写法,旧写法 FAIL(1 of 9),新写法 PASS(9 checks)。
LIUXIN557 added a commit that referenced this pull request Sep 2, 2026
fix: 恢复 master CI 全绿——ftxui gitlink 同步 + verify_package_contract 两处 #35 引入缺陷
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.

Add verify-package skill: side-effect-free local package verification (macOS + Windows, TUI + desktop)

1 participant