chore(herdr): sync detection manifests to preview-2026-08-31-b1ff4582e968 - #325
Merged
Conversation
…e968 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.
Note
go build ./...,go test ./...and golangci-lint passed on this tree in the run that produced it. A pull request opened withGITHUB_TOKENdoes not triggerpull_requestworkflows, so Go CI posts no separate check here.Herdr detection sync report
Generated 2026-09-02T14:03:03Z by
go run ./internal/tools/herdrsync.masterd08e44686d8b19bd9555cc99ec9068d9fde05f16preview-2026-08-31-b1ff4582e968W/"d78b183cb570f3f343ba80777bbf579d"Version changes
No manifest version changed since the previous lock.
File changes
0 file(s) changed, 21 unchanged.
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_cliclaudeclaudeclaudefrom version 9codexcodexcodexfrom version 8copilotcopilotcursorcursordevindevindroiddroidgrokgrokhermeshermeskilokilokimikimimastracodemastracodeompompopencodeopencodeopencodefrom version 10pipiqodercliqodercliqwenqwenUpstream 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 10.No upstream change: all 4 compared file(s) are byte-identical to the copy this port was written against. Nothing to re-port.
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.
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.