Skip to content

feat(herdr): show the Refactoria logo in the Herdr Desktop sidebar - #110

Merged
barbatdev merged 1 commit into
mainfrom
feat/herdr-refactoria-logo
Oct 31, 2026
Merged

barbatdev merged 1 commit into
mainfrom
feat/herdr-refactoria-logo

Conversation

@barbatdev

Copy link
Copy Markdown
Owner

Summary

  • Add herdr/desktop/mods/refactoria-chrome, a clone of Herdr's shipped workspace-chrome mod. The sidebar header shows the Refactoria beard (logo.png) and the RefactorIA wordmark (wordmark.png) instead of the Herdr logo and name. The footer is unchanged.
  • Point the refactoria layout's brand and footer blocks at refactoria-chrome.
  • install.sh links main.js and mod.json as before, but seeds the two PNGs as copies.

Why copies

Herdr Desktop renders nothing for image() when the asset is a symlink. With symlinked PNGs the header came up empty; regular files fixed it.

Verification

  • herdr-app check passes for the mod.
  • ./install.sh --check passes.
  • Live: both Herdr windows (herdr-app-2, herdr-app-3) show the beard and wordmark after a restart. A new mod was not picked up by hot reload or layout.switch; it needed the restart.

🤖 Generated with Claude Code

https://claude.ai/code/session_01A9D7phtHFYfszv6WKeXbiU

Add refactoria-chrome, a clone of the shipped workspace-chrome mod that
draws the Refactoria beard and wordmark instead of the Herdr logo, and
point the refactoria layout at it. Herdr does not load mod images through
symlinks, so install.sh seeds the PNGs as copies.
@barbatdev
barbatdev merged commit 0450fe7 into main Oct 31, 2026
1 check passed
@barbatdev
barbatdev deleted the feat/herdr-refactoria-logo branch October 31, 2026 16:59
@barbatdev

Copy link
Copy Markdown
Owner Author

Post-merge QA (glm)

Lens: requirements + adversarial. Adds a refactoria-chrome mod clone with the Refactoria logo/wordmark, repoints the refactoria layout's brand and footer blocks at it, and links main.js/mod.json via install.sh while seeding the two PNGs as copies (Herdr Desktop does not render symlinked images). The copy-vs-symlink asymmetry is consistently applied: both MANAGED_LINKS entries and both seed_file calls are darwin-only, matching how the other herdr desktop mods are gated. The mod reuses the shipped workspace-chrome SVG icons and keeps the footer behavior. PR verification reports herdr-app check, install.sh --check, and live rendering in two windows, which covers the symlink-image failure mode the copy strategy addresses.

No findings.

Verdict: clean

@barbatdev

Copy link
Copy Markdown
Owner Author

Post-merge QA (deepseek)

Lens: evidence + test design. The mod mirrors Herdr's shipped workspace-chrome and the layout switch is coherent. I checked install.sh against scripts/seed-file.sh at the merge commit: seed_file does mkdir -p "$(dirname "$dst")", so the two PNG copies land even on a machine where the mod directory does not exist yet, and the Darwin-only seeding matches the 'darwin' platform of the linked mod files. What remains is maintenance risk rather than a broken behavior: the copy path preserves an existing regular file forever, and the clone has no drift check against upstream.

Suggestion (2)

  • Seeded PNGs are never refreshed after the first install (install.sh): seed_file() keeps an existing regular file ('= $dst kept (tool-owned)') and only copies when the destination is absent or is our own symlink. That rule exists because other tools edit the seeded configs; nobody edits these two PNGs at the destination, so the exception does not apply here. Once logo.png or wordmark.png changes in the repo, an installed machine keeps the old image with no signal beyond the 'kept (tool-owned)' line, and the branded chrome silently diverges from the versioned asset. A content check or an explicit refresh step would make the copy path behave like the linked files.
  • Clone of workspace-chrome has no drift check against the upstream mod (herdr/desktop/mods/refactoria-chrome/main.js): The header and footer are a copy of Herdr's shipped workspace-chrome, including the toggleSidebar width logic, the updates() dot and the footer rows. When a Herdr Desktop update adds or changes a chrome control, refactoria-chrome keeps the previous behavior and herdr-app check will not report it, because the clone only references workspace-chrome assets, not its code. Worth a note in the mod or a periodic diff against the shipped file.

Verdict: clean

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant