todo 001: add explicit `cargo test -p agent-desktop-ffi --tests` step so
the c_abi_harness and error_lifetime integration tests run on every PR.
`cargo test --lib --workspace` skipped them, which meant ABI regressions
could land without the harness catching them.
todo 006: replace `find target -path '*/agent_desktop.h' | head -1` with
a deterministic lookup. build.rs now stamps the absolute path of the
just-generated header at target/ffi-header-path.txt, and both CI and
scripts/update-ffi-header.sh read that file. Under a warm target/ cache
with multiple agent-desktop-ffi-<hash>/ dirs, `find | head -1` picked
arbitrarily and could compare a stale header — the stamp always points
to the header from the current build.
P1: last_error_survives_successful_calls used ad_check_permissions as
a success-only probe but it returns ErrPermDenied without Accessibility
permission, overwriting the TLS error slot. Replaced with null-tolerant
list accessors that never set last-error.
P2: build.rs auto-copied the generated header into include/, making the
CI drift check self-heal instead of catching stale ABI. Removed the
copy step; CI now diffs OUT_DIR output against the committed header.
Added scripts/update-ffi-header.sh for developers.
P2: ad_free_handle suppressed ActionNotSupported but the default adapter
returns PlatformNotSupported. Added PlatformNotSupported to the match.
P3: ad_get_clipboard returned Ok with *out=NULL when clipboard text had
an interior NUL. Now returns ErrInternal with a diagnostic message.
* feat: restructure skills for ClawHub publishing with CI auto-publish
- Sync core skill to 54 commands (add notification commands)
- Move macOS skill from .claude/skills/ to git-tracked skills/
- Extract Notification Center section to references/notifications.md
- Add ClawHub metadata (version, tags, requirements) to all SKILL.md
- Remove macos.md from core skill (moved to platform skill)
- Create scripts/link-skills.sh for local dev symlinks
- Add publish-skills CI job to release.yml (ClawHub auto-publish)
- Add skill install prompt to npm postinstall
* refactor: consolidate macOS into single agent-desktop skill
Merge agent-desktop-macos back into agent-desktop/references/macos.md
as a single publishable skill. Includes Notification Center content
inline rather than as a separate reference file.