# SCN Chat An AI assistant chat app where each conversation lives in a permissioned space on the user's own PDS, built to be forked and extended. ## Extension **Fork**: A copy of this project that a programmer changes and runs as their own app. The web app is extended by changing a fork's code. _Avoid_: Web plugin, extension, customization **Plugin**: A package installed with the server that adds to it, such as a model provider, a tool, or a turn hook. _Avoid_: Extension, add-on **Plugin instance**: One plugin an admin has added in the admin area, with its own options. A plugin is added once, unless it allows several instances. _Avoid_: Plugin config, plugin entry **Tool**: A capability a plugin offers that the model can call during a turn. _Avoid_: Function, action **Part view**: The component that shows one kind of message part, chosen by the part's type. _Avoid_: Renderer, widget **Tool view**: The component that shows one tool's call and result together, chosen by the tool's name. _Avoid_: Tool UI, tool renderer **Tool status**: Where a tool call stands: running, done, error, or incomplete. Derived from the call, its result, and the message. _Avoid_: Tool state, phase **Steps**: A run of consecutive reasoning parts and tool calls in one reply, shown folded together. _Avoid_: Tool group, chain of thought **Message action**: A control under a message, like copy, edit, regenerate, or stop. _Avoid_: Message button, hover action ## Access **Role**: A named group of users, held through explicit membership, a matching PDS host or handle domain, or a plugin's answer. Roles decide invites and admin models. _Avoid_: Group, permission **Viewer**: A signed-in user without access to the chat app, who can only open chats shared with them. _Avoid_: Guest, read-only user ## Turns **Draft**: What the user is writing in a composer, with its quotes, attachments, model, and effort, until it is sent. _Avoid_: Composer state, pending message **Fallback model**: The model a turn runs with when it names none: the model last used on the branch, by the nearest reply or asked for by the nearest user message, whatever became of its reply, else the user's default model, else the admin's. _Avoid_: Default model (that is the user's preference), inherited model **Reply follower**: What follows each pending reply in the open conversation until its final record arrives: it shows the reply's stream as it comes, and checks for the record when the stream can't tell. _Avoid_: Reply stream (that is the stream itself), live reply ## Look **Theme**: The design tokens, for light and dark, that set the web app's look. Forkers and the designer edit it, and users only get the system's light or dark mode. _Avoid_: Skin, style, appearance