You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 29bf7dd
Browse filesBrowse the repository at this point in the historyBrowse files
feat(control): panels, resize, goals, tasks and log args for external agents
Fixes from an external agent's difficulty report (CONTROL_REPORT.md):
- QDockWidget panels (workspace panels) get an adapter: select, close, float.
A tabified panel behind its tab is off-screen, not hidden, so reachability
uses ids::isShownToUser / isBehindTab. /instance lists workspacePanels.
- /ui/do op=resize drags the nearest edge setting that size (panel
separator, floating window, QSplitter / ADS CDockSplitter handle, the
central area via a panel beside it).
- Hidden-action twins (ids::setAlternative): the 409 names the visible one.
- Goal dialogs, Edit Tasks and the empty terminal panel's task rows have
stable ids; text-less buttons are labelled by the labels inside them;
/instance lists workspaceTasks (no env).
- /log entries and action events carry args (strings capped, password
fields masked).
- Commands outside an open popup menu are refused (except a click, which
closes it): closing the menu's owner under its exec() double-freed it.
- Lint fixes in src/control; skill version 3; README mentions the API.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: README.md
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -14,6 +14,8 @@ In a chat, a finished turn folds into a single "Worked for 2m14s" row; click it
14
14
15
15
There is also a Goal Agent: pick an ACP judge (Claude Code, Codex, Opencode) or a Custom API endpoint that speaks Anthropic's Messages API. You set success criteria and it drives the working agent until those criteria hold, or attach a goal to an existing conversation. Criteria presets can be saved globally, or into the current project's `.agents/.goals` folder so they travel with the repo; files already in that folder show up in the load list. A judge that needs a human action, or that hits the iteration cap with the criterion still unmet, stops and hands the criterion back instead of marking the goal done. With Prefix /goal checked, the first criterion is sent immediately when the agent supports `/goal`. If a reply is still running and the agent does not support `/goal`, that goal waits in the send queue so the current reply is not stopped. Later criteria wait until the previous is achieved. Send with Goal defaults to the agent's own `/goal` command instead: each criterion goes out on its own, with no separate judge. A `/goal` typed in the composer is sent while a turn is still running only when the agent supports that command; otherwise it waits in the queue. A goal is not judged, and auto compact does not run, while the agent still has background tasks running or a wake-up turn pending. When a goal is achieved, the session can compact automatically. Prompts sent while an agent is still working are queued and delivered when it finishes. AI chats group by project, with a session strip to switch conversations in the same dock. Open chats come back after a restart and resume their agent session on the first prompt. A local Claude Code chat can be moved to another agent from the agent button in the dock's title bar, keeping its transcript. The composer can ask the agent to work in a new git worktree. When you commit, AI can write the commit message from your staged diff. That generator (and other LLM calls) can talk to an OpenAI-compatible endpoint or Anthropic's Messages API. Leave the commit box empty (when not amending) and Commit lets you pick an ACP agent to do the commit. Protocol details and how to wire up a custom ACP agent are in [doc/AcpAgents.md](doc/AcpAgents.md).
16
16
17
+
An outside AI agent can also drive NotepadAI itself. AI ▸ Connect External Agent turns on a local HTTP API (off by default, token-protected) and gives you a prompt to hand to the agent; it fetches a skill from the app describing how to use it. The agent works only through the controls you see: menus, buttons, fields, tabs, editors, terminals and chats, each step highlighted on screen and listed in an activity log, with a Stop button in the status bar. Workspaces, terminals and tasks, AI sessions, goals, git, settings and pane sizes are all reachable this way.
18
+
17
19
### Git
18
20
19
21
Inline blame, gutter diff markers, commit history, staging and unstaging (including bulk actions on a status section), a branch picker, and git status decorations in the file tree. Linked worktrees show up in the repository list; you can remove one, or merge its branch into the main checkout and then remove it. Merge and rebase flows are included, with an interactive-rebase editor and a 3-way conflict viewer. Diffs and commits open as editor tabs in a GitHub-style view with a file tree, collapsible files, word-level highlights, and syntax colouring. Most operations never shell out to `git`: it diffs with xdiff and parses status, log, and blame itself.
0 commit comments