Repository navigation
chat: reply by default, and let packages give the computer skills - #81
Open
paulsonnentag wants to merge 6 commits into
Open
paulsonnentag wants to merge 6 commits into
paulsonnentag wants to merge 6 commits into
Conversation
The computer now responds to every message once it's in a chat. `/computer nosey` toggles back to only-when-mentioned, and that choice is stored on the chat doc (computerQuiet) so every tab agrees on it. Skills are `llm:skill` plugins, ported from the agent-chat branch: any package can register one with instructions and optional tools. A skill is active when the focused doc's type matches, when it's enabled with /plugin, or when the model calls load_skill or reads a matching doc. The momputer persona moves out of ChatRoot into a skill chat ships with (chat/src/skills), registered like anyone else's.
Now that the computer replies to everything by default, nosey and quiet each set one mode explicitly instead of nosey toggling.
Collaborator
✅ Patchwork glance readyhttps://patchwork-preview-81--patchwork-base.netlify.appPatchwork from |
paulsonnentag
marked this pull request as ready for review
October 9, 2026 14:02
The bootloader reads `plugins` by importing the package in a module worker, which has no importmap. features.ts statically imported the selection-mention feature, a Solid component, so the entry pulled in `solid-js/web` and the whole package failed to load there (surfacing as "window is not defined" from Vite's preload helper). Feature metadata and registry descriptions now live in feature-descriptions.ts, which has no runtime imports; slots load behind `load()`.
Member
|
nosey by default makes sense in Watercooler, but i'm not sure it makes sense in a normal chat. i'd prefer if the LLM skills thing were added via the chat's own plugins system, if possible, and if not, to figure out why that's not possible and make the plugin system better. what do you think |
Computer messages go through marked + DOMPurify instead of the chat syntax, with fenced code still on the streaming shiki CodeBlock and <think> still collapsible. Human messages keep the chat syntax, where *x* is bold. The system prompts tell the model its replies render as GitHub-flavoured Markdown.
chee
approved these changes
Oct 13, 2026
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.
The computer now responds to every message once it's in a chat.
/computer noseytoggles back to only-when-mentioned, and that choice is stored on the chat doc (computerQuiet) so every tab agrees on it.Skills are
llm:skillplugins, ported from the agent-chat branch: any package can register one with instructions and optional tools. A skill is active when the focused doc's type matches, when it's enabled with /plugin, or when the model calls load_skill or reads a matching doc. The momputer persona moves out of ChatRoot into a skill chat ships with (chat/src/skills), registered like anyone else's.