Uh oh!
There was an error while loading. Please reload this page.
feat(desktop): gate skills by backend capabilities - #1224
Conversation
086746f to
cc7f27dCompareNyvo-io
commented
Jul 19, 2026
The failing I opened the scoped follow-up #1226 to make those three assertions layout-tolerant while preserving their semantic contracts. #1224 remains limited to #1148 Part 2; |
Astro-Han
left a comment
There was a problem hiding this comment.
Approving with two findings:
P2: HostCapabilities omits the existing agent tool group. toolAvailability.groups includes buildSubagentToolGroup() with the agent id, but both capability-building loops only add rive, office, browser, and computer_use. A skill with required-capabilities: [agent] is hidden from the prompt and rejected by Skill even though the parent session has the agent tools. Please derive the capability set from the effective tool groups, or add agent consistently to the static and per-session hosts.
P3: The comments in packages/runtime/src/skills.ts still say the Desktop call sites use the legacy ungated path. This PR changes both call sites to pass a host, so those comments are now stale.
I found no other patch-specific issues. I also tested the PR with #1226 merged locally; the full workspace test suite passed.
Astro-Han
commented
Jul 19, 2026
The falling test has been fixed by #1226. |
cc7f27d to
72ed802CompareNyvo-io
commented
Jul 19, 2026
Rebased onto the latest main after #1226 was merged. The rebase preserves the #1099 binding-derived New head: Verification:
|
Uh oh!
There was an error while loading. Please reload this page.
Astro-Han
commented
Jul 19, 2026
Merged, thanks. One non-blocking follow-up: The two stale comments in |
Summary
Part of #1148 (Part 2: Desktop host-capability gating).
HostCapabilitiessurface from the assembled builtin tools and capability groups;Skilltool;Implementation
The prompt and lazy Skill loader now share the same host gate. Required tools and required capabilities are filtered consistently with the CLI. Main-session backend tools determine the effective host, while the static Desktop surface supports prompt construction before backend creation. Child backends intentionally do not update the Desktop session resolver.
Verification
npm --workspace @maka/runtime run typechecknpm --workspace @maka/desktop run build:mainnpx tsc -p apps/desktop/tsconfig.main.json --noEmit --pretty false --incremental falsepassedThe full Desktop renderer typecheck is currently blocked by the clean worktree missing the existing
simple-iconsdependency; Desktop main typecheck is green.Scope
Desktop discoverable IPC, inline invocation chips, and other Part 3 work remain out of scope.