Commit graph

3 commits

Author SHA1 Message Date
Lahfir
981c108f34 ci(ffi): wire integration tests + deterministic header drift path (todos 001, 006)
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.
2026-04-16 17:05:50 -07:00
Lahfir
f73c023eac fix(ffi): resolve 4 code review findings (P1-P3)
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.
2026-04-16 16:11:51 -07:00
Lahfir
97665203a4
feat: scalable skill architecture with ClawHub auto-publishing (#14)
* 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.
2026-03-03 06:16:15 -08:00