Skip to content

Releases: furkancak1r/dsh-composer-plus

v1.21.0

Choose a tag to compare

@furkancak1r furkancak1r released this 04 Nov 15:17

New

  • Next waiting chat: a button in the sidebar header shows how many other chats wait for you and opens the next one (Cmd+Shift+E, Ctrl+Shift+E on Windows and Linux).
  • Option buttons: when an answer ends with a list of options, click an option to send it. On a question card of the agent, the keys 1–9 pick an option.
  • Reject with note: on an approval card, write why or what to do instead. The agent reads the rejection and your note in the same turn.
  • Secret input: the agent can ask you for a password or a token on a private card. The agent gets only the path of a file, not the value, and the file is deleted when the turn ends.
  • Quote in reply: select a part of an answer and click Quote to put it into the composer as a quote.
  • Side chat: ask a side question in a read-only copy of the chat while the chat goes on working. Bring back puts the answer into the chat's composer.
  • Diff notes: in the Changes panel, add a note to a line of a diff, then send all notes to the composer.
  • Project memory: seven new features. Memory version history, Export memory to AGENTS.md, Memory note source link, Copy memory to another project, Find stale memory notes, Do not use memory in this chat and Suggest memory notes from a chat.
  • Remote computers: open the dsh of your other Macs over Tailscale and continue their chats here. Off by default, because it opens network ports.

Changes

  • Task board: the projects are in a list in the header (Search projects). Cmd+Shift+K (Ctrl+Shift+K) opens the board. A card that you read leaves Done. Recently finished shows the cards that you read.
  • Task board: Clear all asks first and keeps the unread cards. Undo and Removed bring cards back. No chat is deleted.
  • Project status: the Ungrouped row of the sidebar also shows the status of its chats, for example the spinner while a chat runs.
  • Tether: the notification settings are kept for each paired Mac. A Mac that you pair later starts with notifications off.
  • Once a day, each copy asks GitHub for the small active.txt file of its release, so the owner can count the copies of each version. The request has no id, cookie or data about you.

v1.20.0

Choose a tag to compare

@furkancak1r furkancak1r released this 03 Nov 14:54

New

  • Task board: point at a card in Doing (or move the keyboard focus to it) to see its progress: how long it runs, the step of its todo list, the tool that runs now and the agent's last line. In Settings → Composer Plus → Task board, Progress on hover picks Fast (no AI) (the default: it reads the chat only) or AI summary (one short call to the chat's model also writes one or two sentences). Tether shows one progress line under each running card.
  • New task now opens dsh's own new chat in the project, so the first message has dsh's composer (files, commands, model menu). After you send it, the board opens again. Until then the chat waits in Todo, and Todo shows only then.

Changes

  • Task board has no project colors: the only colors are the states (orange waits for you, blue runs, green is finished).
  • A project with a chat that waits for you has an orange dot in the board's project list. Tether opens the board on Review when a chat waits for you.
  • Only the project list scrolls: the title, Search projects and Active in the last 2 hours stay in place. Search projects has the height of a project row.
  • In a narrow board, the header stays on one line: Hide finished shows only its icon.

v1.19.1

Choose a tag to compare

@furkancak1r furkancak1r released this 03 Nov 09:38

New

  • Task board has a search box and a filter above its project list. Type in Search projects to find a project by its name (case and accents do not matter, Esc empties the box). Click Active in the last 2 hours to show only projects with a chat that waits, runs, finished unseen or changed in the last 2 hours. This choice stays on this device. In Tether, tap the board's title to open the same project list.

Changes

  • Task board cards in a narrow window: a title breaks only between words, not inside a word. The time moved to the end of the tag row, so the title has the full width of the card.

v1.19.0

Choose a tag to compare

@furkancak1r furkancak1r released this 03 Nov 08:32

New

  • Task board shows your dsh chats with their live state, as the sidebar does. A chat that waits for your approval, answer or plan review is in Review with an orange dot. A running chat is in Doing, and a finished chat is in Done (green until you open it). New task takes only a prompt: Enter starts a new chat in the project. dsh names the chat, and one short call to the chat's model writes up to 3 tags. Click a card to open its chat. On an orange card, click Answer to answer on the board: Reject or Allow once, Approve or Request changes for a plan, or the options and your own text for a question. Hide finished hides Done on this device. Tether has the same board in the chat title menu.
  • The What's new window shows the release notes in the language of Application language. The notes come with the package in 13 languages. A language without notes shows the English notes.

Changes

  • Task board no longer keeps its own tasks: the notebook cards, the Backlog column, drag and drop and the agent board tools are gone. The old board.json stays on disk, unread.
  • Git branch on chat rows shows the branch pill only in the In one list view. Under a project row, the chat is already below its folder, so the row shows no main or branch name. Tether does the same.
  • Typing in Open memory no longer lags when many projects are open. The Collapse all projects button used a page-wide style rule that made the browser compute the whole page again at each key press.

v1.18.0

Choose a tag to compare

@furkancak1r furkancak1r released this 02 Nov 13:53

New

  • Task board (on by default): left sidebar → Task board. A kanban board of your dsh projects for you and the agents: Todo, Doing, Review and Done, and a Backlog column that you can switch on in Settings. Drag cards between columns, open a card to change its status, tags, the Human mark (agents skip it), the Markdown description and the comments. n adds a task, / searches every project, h shows only human tasks, and the export button saves the board as Markdown or JSON. Agents get board tools: ask a chat to "take the next task from the board" and it moves the top Todo card to Doing, comments on what it did and moves it to Review. Tether has it in the chat title menu.
  • Planned steps (off by default): switch it on in Settings → Composer Plus. The agent gets the tool plan_next_steps. In the same message as a command, it can plan the next commands with their exact arguments and a condition, for example "run npm test when the build passes". When the result meets the condition, Composer Plus runs the next step without a new model call, so a long chat uses fewer tokens. Only bash, read, grep and glob steps. Approvals, the sandbox and Protected files apply to each step as usual. While it is on, each request carries the tool and a short instruction (about 500 tokens). The idea comes from HarnessMM (arXiv 2610.32813).
  • Blocked commands (on by default, with an empty list): the agent's shell commands (bash, pwsh) cannot run a command that matches your rules. Settings → Composer Plus → Blocked commands: type a rule (for example npm publish, git push --force or ssh *192.168.2.19), choose block or ask first, then click Add. A block rule refuses the call and tells the agent to ask you. An ask first rule shows dsh's approval card. The check also finds the command after &&, ; and |, inside $(…), bash -c "…" (also after other options, such as bash -c -x), pwsh -Command and eval, and after sudo or env. This is a guard rail, not a sandbox: a variable ($CMD), a script file or another program can still run the command. The idea comes from dsh-superagent-prototype's blockedCommands.

Changes

  • Protected files and Blocked commands use the same list editor in Settings. Only one list save runs at a time, so a refresh or the switch cannot show an old list over a saved one.

v1.17.0

Choose a tag to compare

@furkancak1r furkancak1r released this 30 Oct 14:29

New

  • Protected files (on by default): the agent's own file tools cannot read or change files that match your patterns. The defaults are .env*, *.pem and *.key. Add your own patterns in Settings → Composer Plus → Protected files, as "read and write" or "write only". The check uses the real path, so a symlinked folder or a .. path does not get around it. This is a guard rail, not a sandbox: a shell command, a script or an MCP tool can still reach the file.
  • Continue in a new chat: right-click a chat → Continue in a new chat…. The chat's model writes a handoff note (task, outputs, completed work, decisions, open issues, next action). You read and edit the note, then Start new chat opens a new chat in the same project with the note and a link to the old chat. Tether has it in the chat title menu.
  • Context breakdown: right sidebar → + → Context shows what fills the open chat's context and how much of the context window it uses: system prompt, project instructions, skills, messages, tool results by tool, MCP results by server and tool definitions. It reads the chat log only and calls no model. Tether has it in the chat title menu.
  • Fit chat header to window: in a narrow window, the buttons in dsh's chat header no longer cover each other.
  • Project memory: Open memory in Settings shows the saved notes of each project and of the global memory. Write what should change, and the model shows a preview of the changes. Apply saves all of the changes or none of them. Tether has it too.

Changes

  • Improve prompt also rewrites a /goal <objective> draft into a clear completion condition: the outputs, the checks to run, the evidence to show and when to stop and report. The /goal prefix stays.
  • Goal check: the independent verifier answers with an evidence table. Each part of the goal is verified, incorrect or unresolved, with its evidence and the fix, and the row shows "N of M verified". The goal closes only when every part is verified. A token budget also counts the chat's subagents.
  • Open waiting chat when idle also opens a chat with a finished turn that you have not read (the green dot), after the chats that wait for you (the orange dot).

Fixes

  • Git branch on chat rows: a chat whose folder has a detached HEAD no longer shows a commit id as its branch. Tether too.

v1.16.1

Choose a tag to compare

@furkancak1r furkancak1r released this 30 Oct 06:11

Fixes

  • Branch per chat: a project of a deleted branch (its <project>/.worktrees/<name> folder is gone) now leaves the sidebar by itself, also when no chat of it runs and with no sidebar filter. Composer Plus checks the branch folders at dsh start and every 30 seconds while the Branch per chat switch is on. dsh shows the chats of that project under Ungrouped and keeps their logs.

v1.16.0

Choose a tag to compare

@furkancak1r furkancak1r released this 28 Oct 19:52
  • Edit queued message in place: a queued message with images or files can be edited too. Change the text, remove an attachment or add a new one; the message keeps its place in the queue. Tether keeps the attachments as well.
  • Resume after restart: the queued messages of a chat stay after dsh restarts, also when dsh empties its inbox at quit.
  • Fit question card to window (new): a question card that is taller than the window scrolls the question and the answers together, so Skip and Send stay visible.
  • Branch per chat: when the branch of a worktree chat is deleted, the chat moves back to the main project folder. A new chat starts on New branch by default; you can still pick main. Plan mode can open a new branch too.
  • Branches in the workspace tree (new, off by default): a clean branch that a chat made moves to its own worktree, and the chat moves with it.
  • Backup, Automatic backup, Session log check and Rescue console (new): back up and restore dsh data with secrets masked, check session logs for damage, and repair them from a backup. Automatic backup is off by default.
  • Changes panel: the Tree view is now a branch map (branch boxes, arrows, merged and waiting branches), and the panel can open on Tree.
  • Open waiting chat when idle (new): after 30 seconds without activity, dsh opens the chat that waits for an answer, an approval or a plan review.
  • Project memory (new, off by default): the chat's project keeps notes that later chats of the same project can use.
  • Send after Stop goes first (new): a message that you send after Stop goes before the older queued messages.
  • Projects: the parent project status and the "last 2 hours" filter in the tree are correct again.
  • Tether: a Notifications switch (off by default) with quiet hours. The app asks for notification permission only when you switch it on.

v1.15.0

Choose a tag to compare

@furkancak1r furkancak1r released this 28 Oct 09:57
  • Branch per chat: the New chat branch button now sits between the project and the mode button, and looks like them (branch icon, name, chevron).
  • Branch per chat: the first message on a new branch can carry images and files; a message with only attachments gets a dated branch name.
  • Branch per chat: while the branch is made, the composer takes no text ("Creating branch…"); a failed start gives the text and the attachments back.
  • Git branch on chat rows: no pill on a chat under its own branch folder (the folder row names the branch); "In one list" keeps it.
  • Tether: New branch also sends photos and files, and the text field is locked while the Mac makes the branch.

v1.14.0

Choose a tag to compare

@furkancak1r furkancak1r released this 28 Oct 07:53

What's new

  • Goal check (on by default): when the agent marks a /goal goal complete in an automatic round, the goal closes only after two checks:
    • The project's test command runs in the chat's folder, under the chat's sandbox mode. It does not run again when the agent's own newest step was a passing run of that test.
    • One independent model call, with no tools, reads the goal, the chat, git status and the test result.
    • When a check fails, the goal stays active and the agent reads the reason in the next round. A row under the goal bar shows the test and the last result, with Edit (own test command, time or token limit) and Run now. When you complete the goal yourself, nothing is checked.
  • Default workspace for New session: New session at the top of the sidebar (and its shortcut) always opens in one project that you choose in Settings, or in dsh's general folder Documents/deepseek-harness/default-workspace. A project's own + still opens that project.
  • Worktree chats: New chat → ⑂ → New branch. The AI names the branch from your first message, Composer Plus makes a git worktree in <project>/.worktrees/, copies the files that .worktreeinclude lists and opens the chat there. The chat header shows the branch, its changes and push state.
  • Git branch on chat rows: each sidebar chat row shows the git branch of the chat's folder at its last turn.
  • Find in chat: Cmd+F (Ctrl+F on Windows and Linux) opens a find box over the open chat, with n / total, next and previous.
  • Changes panel: the Tree view is now a branch list. Click a branch to see its commits, and click a commit to see its files.
  • Feature ideas: Open GitHub issue on an idea. The summary for the model now also has the README outline and the titles of recent commits.

Fixes

  • Improve prompt: a job is no longer lost when you change the chat.
  • Worktree chats: .worktreeinclude patterns use a matcher with a step limit, not a regular expression (ReDoS).

Tether (iPhone app)

  • Quick chat opens in the same default workspace.
  • A wait indicator shows for each action that waits for the Mac.
  • The Changes screen moves its five views to a Mode menu and shows the branch list.
  • A … button for project actions.

Tether is not in the npm package: build it from tether/ios.

Install

dsh plugin --profile web add dsh-composer-plus@1.14.0