Recall Ext
Read extensions/AGENTS.md and docs/extensions.md for the extension boundary,
CLI protocol, and managed-install contract. Compare implementation with the
contract; resolve disagreements before changing behavior.
Develop
- Use
extensions/recall-probe/for the minimal package layout. Add the newrecall-<name>binary to workspace members and keep its version independent of core. - Implement
--recall-extension-manifestwithname, packageversion,protocol, andmin_recall. Choose compatibility values from the CLI features actually consumed; do not copy the probe's legacy values orcommandsfield into a new extension. - Pass an explicit
--projecton scoped Recall queries and syncs; useallonly for global work. Omitted scope follows the caller's working directory. recall session show --format jsonreturns metadata by default. Request--messagesor--include metadata,messageswhen reading transcripts.- For host changes, trace
src/extension.rsagainst the managed-install contract: official catalog, checksum and manifest validation, managed-only dispatch and removal. Do not add PATH discovery or a third-party registry.
Verify
Run the relevant package checks and exercise its CLI protocol:
cargo build -p recall-<name>
cargo test -p recall-<name>
cargo run -p recall-<name> -- --recall-extension-manifest
For host changes, run cargo test --lib extension::tests; for catalog changes,
check cargo run -- ext list --available. Run root make check before ship.
Release
Bump the package version only when a release is requested. Follow
.github/workflows/extension-release.yml for version/tag validation, target
packaging, publication, and catalog generation. Extension tags are
recall-<name>-v<version>; a core tag does not release an extension.
Verify the affected target archives, manifests, and SHA-256 checksums using
that workflow. Never hand-edit website/public/extensions/catalog.json or
couple extension and core releases unless protocol compatibility requires it.