chore(herdr): sync detection manifests to preview-2026-09-06-9e9bc8a14466 - #327
Open
github-actions[bot] wants to merge 1 commit into
Open
chore(herdr): sync detection manifests to preview-2026-09-06-9e9bc8a14466#327github-actions[bot] wants to merge 1 commit into
github-actions[bot] wants to merge 1 commit into
Conversation
…4466 Vendored from herdr master by go run ./internal/tools/herdrsync.
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.
Warning
The Go suite did not pass on this tree (run). A pull request opened with
GITHUB_TOKENdoes not triggerpull_requestworkflows, so that run is the only signal there is. Do not merge until it is green.Herdr detection sync report
Generated 2026-09-07T12:35:22Z by
go run ./internal/tools/herdrsync.master482818130407691154d1635d4029b95d0e730104preview-2026-09-06-9e9bc8a14466W/"d78b183cb570f3f343ba80777bbf579d"Version changes
claudecodexFile changes
2 file(s) changed, 19 unchanged.
upstream/claude.toml(2026.09.04.1, 6718 bytes, 16 rules)upstream/codex.toml(2026.09.05.1, 2440 bytes, 9 rules)Published versus bundled
Each row is the copy a Herdr client would load, and why.
agyampclaudeclinecodexcopilotcursordevindroidgeminigrokhermeskilokimikiromakimuseopencodepiqodercliqwenRegex compatibility
4 pattern(s) that Rust's
regexcrate accepts cannot compile under Go's RE2. The vendored files keep them verbatim; an overlay carries the rewrite. Seedocs/reference/herdr-detection-parity.md.upstream/antigravity.tomlrulespinner_workingline_regex:^\s*[\u2800-\u28FF]+\s+\p{Alphabetic}+\w*ing\b\p{Alphabetic}upstream/cursor.tomlrulespinner_workingline_regex:^\s*(⬡|⬢|[\u2800-\u28FF]+)\s+\p{Alphabetic}+\w*ing\b\p{Alphabetic}upstream/kiro.tomlruletool_spinner_workingline_regex:^\s*(◔|◑|◕|●)\s+\p{Alphabetic}\p{Alphabetic}upstream/qodercli.tomlrulespinner_workingline_regex:^\s*[\u2800-\u28FF]\s+.*\p{Alphabetic}\p{Alphabetic}Alias table
23 agents in Herdr's
lookup_agent; generic runtimes:bash,bun,cmd,fish,node,powershell,pwsh,sh,tmux,zsh(plus python, or python[....] where every dot-separated segment after the prefix is a non-empty run of ASCII digits (is_python_runtime)).Every Herdr alias for a family Sidecar already claims appears literally in
internal/agentactivity/activity.go.Authority gaps
Herdr's published authority is a target. Sidecar tiers are earned by traces and are never copied.
Below target marks an agent Herdr gives lifecycle authority to through hooks and Sidecar has not proved
fullfor. That is the same ruleTestHerdrAuthorityGapsprints, so this table andgo test ./internal/agentlifecycle/name the same set.agyampclaudeclinecodexcopilotcursordevindroidgeminigrokhermeskilokimikiromakimastracodemuseompopencodepiqodercliqwenIntegration assets
Vendored verbatim from
src/integration/assetsintointernal/agentintegration/upstream/, pinned byupstream.lock.jsonthere. They are reference material: Sidecar installs its own assets and these exist so a re-port is a diff.agyantigravity_cliantigravityfrom version 3claudeclaudeclaudefrom version 9codexcodexcodexfrom version 8copilotcopilotcopilotfrom version 3cursorcursorcursorfrom version 1devindevindevinfrom version 2droiddroiddroidfrom version 3grokgrokgrokfrom version 1hermeshermeshermesfrom version 5kilokilokilofrom version 4kimikimikimifrom version 7mastracodemastracodemastracodefrom version 2ompompompfrom version 9opencodeopencodeopencodefrom version 10pipipifrom version 8qodercliqodercliqoderclifrom version 3qwenqwenqwenfrom version 1Upstream changes since each Sidecar port
ported-fromis recorded ininternal/agentintegration/portedfrom.go, not in an asset header: two of the three Sidecar assets are Go values with no header to carry it. A comparison is made on bytes rather than on the version number, so a file upstream edited without bumping still shows here.opencode— ported from herdropencodeversion 10Compared against
4a3b04f5; upstream is now at version 11.upstream/opencode/herdr-agent-state.js(diff):upstream/opencode/herdr-agent-state.test.ts(diff):upstream/opencode/herdr-tui-session.js(diff):codex— ported from herdrcodexversion 8Compared against
4a3b04f5; upstream is now at version 8.No upstream change: all 2 compared file(s) are byte-identical to the copy this port was written against. Nothing to re-port.
claude— ported from herdrclaudeversion 9Compared against
4a3b04f5; upstream is now at version 9.No upstream change: all 2 compared file(s) are byte-identical to the copy this port was written against. Nothing to re-port.
pi— ported from herdrpiversion 8Compared against
d08e4468; upstream is now at version 8.No upstream change: all 1 compared file(s) are byte-identical to the copy this port was written against. Nothing to re-port.
kilo— ported from herdrkiloversion 4Compared against
d08e4468; upstream is now at version 4.No upstream change: all 1 compared file(s) are byte-identical to the copy this port was written against. Nothing to re-port.
kimi— ported from herdrkimiversion 7Compared against
d08e4468; upstream is now at version 7.No upstream change: all 2 compared file(s) are byte-identical to the copy this port was written against. Nothing to re-port.
omp— ported from herdrompversion 9Compared against
d08e4468; upstream is now at version 9.No upstream change: all 1 compared file(s) are byte-identical to the copy this port was written against. Nothing to re-port.
antigravity— ported from herdragyversion 3Compared against
d08e4468; upstream is now at version 3.No upstream change: all 2 compared file(s) are byte-identical to the copy this port was written against. Nothing to re-port.
copilot— ported from herdrcopilotversion 3Compared against
d08e4468; upstream is now at version 3.No upstream change: all 2 compared file(s) are byte-identical to the copy this port was written against. Nothing to re-port.
cursor— ported from herdrcursorversion 1Compared against
d08e4468; upstream is now at version 1.No upstream change: all 2 compared file(s) are byte-identical to the copy this port was written against. Nothing to re-port.
grok— ported from herdrgrokversion 1Compared against
d08e4468; upstream is now at version 1.No upstream change: all 2 compared file(s) are byte-identical to the copy this port was written against. Nothing to re-port.
devin— ported from herdrdevinversion 2Compared against
d08e4468; upstream is now at version 2.No upstream change: all 2 compared file(s) are byte-identical to the copy this port was written against. Nothing to re-port.
droid— ported from herdrdroidversion 3Compared against
d08e4468; upstream is now at version 3.No upstream change: all 2 compared file(s) are byte-identical to the copy this port was written against. Nothing to re-port.
qodercli— ported from herdrqodercliversion 3Compared against
d08e4468; upstream is now at version 3.No upstream change: all 2 compared file(s) are byte-identical to the copy this port was written against. Nothing to re-port.
qwen— ported from herdrqwenversion 1Compared against
d08e4468; upstream is now at version 1.No upstream change: all 2 compared file(s) are byte-identical to the copy this port was written against. Nothing to re-port.
mastracode— ported from herdrmastracodeversion 2Compared against
d08e4468; upstream is now at version 2.No upstream change: all 2 compared file(s) are byte-identical to the copy this port was written against. Nothing to re-port.
hermes— ported from herdrhermesversion 5Compared against
d08e4468; upstream is now at version 5.No upstream change: all 2 compared file(s) are byte-identical to the copy this port was written against. Nothing to re-port.
Fixture verdict flips
Every fixture in
internal/agentactivity/testdatawith ascreen:block, classified against the manifests this sync replaced and against the ones it wrote. A verdict is the state, the matched rule id, and the fallback reason: the same triplescripts/herdr-diff.shcompares. The Sidecar overlays are applied to both sides, because a sync never touches them and applying them to one side would report every overlay rule as a flip. Sidecar's process gate is not applied: it reads the pane's process name and never the manifest, so its answer is the same on both sides and it cannot create or hide a flip.No fixture changed verdict. 61 fixture(s) reach the same state, the same matched rule and the same fallback reason under the new manifests as under the old ones. That is the expected result and it is what the review gate is for.
Overlay rules
Each rule is removed on its own from the manifests this sync wrote, and the corpus is reclassified. A rule that changes no verdict has stopped earning its place, which is the signal that upstream has adopted the same idea and the rule can go. Redundancy is judged on the state and the fallback reason alone, never on the rule id: a
sidecar.id can never equal the upstream id that would win without it, so folding the id in would make the check unreachable.A rule carrying an upstream id is not in that bucket and is never a deletion candidate. It replaces upstream's rule rather than adding one, so removing it leaves a rule that is dead (the
\p{Alphabetic}rewrites RE2 cannot compile) or differently flagged (the copies that only addvisible_blocker), which is a regression rather than a cleanup. Those rows are judged on the matched rule id and the visible flags as well, and say when no fixture covers them at all.antigravityspinner_workingantigravitysidecar.trust_prompt_blockedblocked.txtantigravitysidecar.permission_prompt_blockedpermission_prompt.txtantigravitysidecar.status_footer_workingworking.txtclaudesidecar.overlay_retainoverlay.txtclaudesidecar.allow_prompt_blockerallow_prompt.txtclaudesidecar.background_agents_waitingsidecar.background_agents_footer_workingclaudesidecar.background_agents_footer_workingbackground_agents_footer.txtclaudelegacy_no_prompt_blockerlegacy_permission_wait.txtcodexsidecar.background_terminal_workingbackground_terminal.txtcodexosc_title_idlecompleted.txt,interrupted.txt,startup_idle.txtcodexsidecar.composer_idlecompleted.txt,interrupted.txt,startup_idle.txtcodexsidecar.working_chrometool_running_composer.txtcodexsidecar.approval_blockerapproval_prompt.txtcodexweak_blockerweak_blocker.txtcursorspinner_workingworking_spinner.txtcursorsidecar.decision_blockedblocked_decision.txtcursorsidecar.finished_background_tasks_idlefalse_positive_finished_background.txtcursorsidecar.background_suffix_workingworking_background.txtgroksidecar.background_subagent_workingbackground_subagent.txtgroksidecar.overlay_retainoverlay.txtgroksidecar.working_footerharness-exempt: no fixture holds the screen it is for, and its case is a Go testgroksidecar.idle_footerstale_working_scrollback.txtkirotool_spinner_workingtool_spinner_working.txtmusesidecar.thinking_workingthinking.txtqoderclispinner_workingspinner_working.txt1 overlay rule(s) changed no fixture verdict. Delete the rule, or record why it stays and add the fixture that proves it. Deleting one is a separate change with a fixture attached, so this report flags it rather than making it.
Opened by
.github/workflows/herdr-sync.ymlfromgo run ./internal/tools/herdrsync. Re-running the workflow force-updates this branch and edits this description in place.