Repository navigation
Conversation
gilgtm
force-pushed
the
gil/nexus-4033-core-skills
branch
from
November 6, 2026 16:02
3b631a0 to
c0a8e74
Compare
gilgtm
force-pushed
the
gil/nexus-4033-core-skills
branch
from
November 10, 2026 03:00
c0a8e74 to
ddb4e69
Compare
This was referenced Nov 10, 2026
gilgtm
force-pushed
the
gil/nexus-4033-core-skills
branch
from
November 10, 2026 05:31
ddb4e69 to
adbdf42
Compare
In the desktop app, `/` at a word start lists the skills of the one local Claude or Codex agent that the viewer's message addresses. The skills come from that agent's own skill folders on this machine: `~/.claude/skills` for Claude, and `~/.codex/skills` and `~/.agents/skills` for Codex. Skills appear under a "Skills for <agent>" heading, with their own icon. Completion rows now carry an optional group, so a later commands group can go first in the same `/` menu. If several agents are addressed, the menu asks for one. A remote agent, someone else's agent, a person or a browser build lists nothing. One open `/` query lists once across keystrokes, and Retry lists again after a failed read. A chosen skill is a chip for that agent. The chip opens its short description and location in place, as a nested popover. Like other chips, it sends as literal text plus the signed `buzz-tokens-v1` tag. No skill content is copied into the message. `local_skills_list` reads only the SKILL.md front matter in the given skill folders, using the bounded listing helper that the folder chips use. It skips front matter larger than 16 KiB and refuses a listing of more than 512 skills. A local Claude or Codex agent gets one prompt line naming each SKILL.md only when the message's author is the agent's owner and the chip names that agent. Another author's chip, or a chip for another agent, adds nothing. The agent reads the file itself. Co-authored-by: Codex <noreply@openai.com> Co-authored-by: Claude <noreply@anthropic.com> Signed-off-by: Gil Birman <gil@squareup.com>
gilgtm
force-pushed
the
gil/nexus-4033-core-skills
branch
from
November 10, 2026 06:17
adbdf42 to
c99d0ce
Compare
gilgtm
marked this pull request as ready for review
November 10, 2026 06:38
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Offers
/skill chips for the addressed local agent (c99d0ce51)./at a word start lists the skills of the one local Claude or Codex agent that the viewer's message addresses.~/.claude/skills; Codex's from~/.codex/skillsand~/.agents/skills.buzz-tokens-v1tag, and no skill content is copied into the message.local_skills_listreads only SKILL.md front matter, through the bounded listing helper. It skips front matter over 16 KiB and refuses more than 512 skills.Compared with the previous version of this PR
The previous version offered session skills through the removed task mode's skills source. Skills now come from the agent's own folders on this machine, for any chat that addresses one local agent.
buzz-review-completed
Testing
Local runs on macOS, on the stack rebased onto main
9596cd3db:adbdf424echain only intests/browser/solo-rename.spec.mjs.02f9c0277makes the new plugin-owned lifecycle test wait for the chat's row before filing it, after the hosted flake check caught it racing the roster load. With that fix, the fullsolo-rename.spec.mjspassed 180/180 at02f9c0277(10 repeats, Chromium and WebKit) and 120/120 atc99d0ce51(5 repeats).adbdf424e:pnpm check(Biome, TypeScript and the design checks) and the icon check passed. Vitest for the files the flake check selects for this PR: 1485 passed, 16 skipped.adbdf424e:cargo fmt --checkandcargo clippy -p Buzz --all-targets -- -D warningspassed.local_skillsandhost_filestests at this head: 4 and 24 passed.cargo-deny checkpassed at the stack tip.adbdf424e: full Vitest, 20556 passed and 23 skipped (includesbrowser-host/channel-kit.test.mjs).tests/browser/solo-rename.spec.mjs, repeated 5 times, passed 120/120. The 34 other specs that the flake check relates to the stack, run once in each engine: 343 passed, 3 skipped by their own conditions. The full browser suite was not run locally.Native testing: Gil ran the native desktop app on this stack at
adbdf424e, with the matching Nexus plugin build. Gil confirmed that these native-only paths passed:!folder listing through the Taurirepositories_folder_listcommand (NEXUS-4029: Offer folder chips in the composer #2789);/SKILL.md listing throughlocal_skills_list(NEXUS-4033: Offer session skills in the core task composer #2790);--add-dirfolder grant (NEXUS-4029: Offer folder chips in the composer #2789);Agent testing did not reach these paths: the agent ran no native app, no real relay and no real agent.
Known gaps
Hosted or local failures that this stack does not cause:
tests/browser/typing.spec.mjs:290("a growing channel/thread composer lifts history with it at the bottom") intermittently fails with React error Add complete reaction toggles to the message menu #185 on main too. Locally it failed 12 of 12 runs at9596cd3dband 9 of 12 at a later main commit.cargo test -p Buzzcrashes the library test binary (SIGSEGV), and somehost_commanddeadline tests fail. Both happen the same way at base9596cd3db, before this stack. Hosted Linux CI is the reference for these.Test changes
Titles are compared only in the test files each range changes. Tests that moved or were renamed are matched by title.
Removed by this PR's diff (0)
Added by this PR's diff (6)
src/bundled/claude-code/runtime.test.ts: names a skill its owner chose for this agent by chip, never one chosen for another agentsrc/bundled/mentions/SkillCompletion.test.tsx: lists nothing unless one addressed agent is the viewer's own local Claude or Codex agentsrc/bundled/mentions/SkillCompletion.test.tsx: matches/and name characters at a word start, never mid-word or past a spacesrc/bundled/mentions/SkillCompletion.test.tsx: offers the one addressed local agent's skills as chips for that agent, listed once per querysrc/bundled/mentions/SkillCompletion.test.tsx: shows a failed listing with Retry, which lists againsrc/features/agent-harness/referenced-folders.test.ts: names only skills the owner chose for this agent, quotedIn the previous version of this PR, not carried over (8)
src/features/host/service.test.ts: inspects paths with the calling plugin grant and preserves missing/dangling/error resultssrc/features/messages/MessageComposer.test.tsx: shows a task chat's skill details through its source, without a failing or malformed reportsrc/features/messages/composer-token.test.tsx: opens a skill chip's details in place by pointer or key, and dismisses only themsrc/features/messages/composer-token.test.tsx: returns the caret right after a skill chip when its details close toward itsrc/features/solo/task-skill-completion.test.tsx: matches/only after a boundary, up to the next slashsrc/features/solo/task-skill-completion.test.tsx: offers a task chat's skills for its one tagged agent or primary and rechecks them on selectionsrc/features/solo/task-skill-completion.test.tsx: refuses a task source whose skills cannot be calledsrc/features/solo/task-skill-completion.test.tsx: reports an empty or failed load, and offers nothing outside a task chat or without a skills source