rowboat/apps/x/packages
Ramnique Singh 8dd5a2b49f refactor(x): skills declare their own availability; excludeIds dies
Catalog membership for connection-gated skills (composio-integration,
code-with-agents, slack) was decided by hand-rolled excludeIds forks
inside buildCopilotInstructions — a third place that had to know which
skill depends on which connection. Now each entry declares an
availability() check (repos resolved via the new lazyResolve helper, so
the skills module keeps no static DI edge; failures read as
unavailable, the historical default), buildAvailableSkillCatalog
evaluates them concurrently for the system prompt, and the excludeIds
mechanism is deleted. Availability gates catalog VISIBILITY only —
loadSkill still resolves explicitly-requested ids, exactly matching the
old behavior. Tests cover the pure filter and pin that gated ids remain
resolvable.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-10 08:48:24 +05:30
..
core refactor(x): skills declare their own availability; excludeIds dies 2026-07-10 08:48:24 +05:30
shared refactor(x): one delivery path for turn events — chat, channels, deltas 2026-07-09 15:47:21 +05:30