task-dock: yield to the new composer session controls; re-verify against Hermes 284d220ba4 - #25
Merged
Merged
Conversation
…kit against Hermes 284d220ba4 Hermes 0.21.2 added session automation controls (goal / loop / heartbeat) into the same composer status stack that carries the stock Tasks widget. Task Dock scanned that whole subtree for an UNANCHORED /Tasks \d+\/\d+/ against textContent, and those controls render user- and agent-authored prose in plain spans, so a loop "until" clause or a goal criterion reading "Tasks 3/3 done" was taken for a Tasks header: the control's body got stamped as a captured source, hidden by the plugin's own display:none rule, and a dock was published from someone's sentence. - Header discovery now anchors (/^Tasks \d+\/\d+/). A real header IS the label; the running spinner's braille frames trail it, so anchoring is safe. - The app's own status-stack widgets (session-control-*, composer-subagents, composer-subagent-detail, subagent-transcript) are skipped during the scan, and markLiveSources refuses to hide a node that sits inside or contains one. If stock markup ever reshapes, the dock duplicates rather than swallows. Both helpers fail open on a selector throw, so an older engine behaves as before. - computer-viewer: pl-0.5 -> px-0.5 (pr-1 still overrides the right half, so the geometry is unchanged). A disk plugin's classes are never scanned by the app's Tailwind build, and pl-0.5 went unused upstream, silently zeroing that padding. - Docs: the desktop-plugin root is no longer profile-scoped (fs-ipc resolves <HERMES_HOME>/desktop-plugins and migrates anything left under profiles/*); AGENTS.md and the computer-viewer README said otherwise. The Python halves are still per-profile. Re-verified against hermes-agent 284d220ba4 (v0.21.2, 2026-09-11), 1221 commits on from the previous stamp: zero SDK exports removed, plugin contract unchanged, runtime-loader allowlist and the desktopPluginsRoot/readPluginSource bridge intact, every DOM anchor and data-slot still produced, Bot Chat caption and the routines-pane gate unchanged, both Python plugins pass doctor. READMEs stamped. 3 new tests (61 JS total), all suites green. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
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.
Hermes 0.21.2 put session automation controls (goal / loop / heartbeat) into the same composer status stack as the stock Tasks widget. Task Dock's unanchored
/Tasks \d+\/\d+/scan matched prose inside those controls (a loopuntilclause, a goal criterion) and hid them. Header matching is now anchored, the app's own status-stack widgets are skipped, andmarkLiveSourcesrefuses to hide anything inside or containing one — Task Dock yields, never the reverse.Also:
pl-0.5went unused upstream so it no longer exists in the compiled sheet (swapped forpx-0.5, same geometry), and the docs still told people to install desktop plugins per profile when the root is now app-level.Full re-verification against
284d220ba4(1221 commits on from the previous stamp): SDK exports, plugin contract, runtime-loader allowlist,desktopPluginsRoot/readPluginSource, every DOM anchor anddata-slot, the Bot Chat caption and routines-pane gate, both Python plugins' doctor runs. 61 JS + 36 + 7 + 26 Python tests, installer/bind/manifest all green.🤖 Generated with Claude Code