rebrand(D4): finish the load-bearing name/URL sweep post-transfer - #187
Merged
Conversation
The repo is now NimbleCoOrg/swarm-map. #162 did the product display strings; this closes the surfaces that break or mislead rather than merely read old. - README/CONTRIBUTING/getting-started: clone + issues URLs -> the new path, and the `cd hermes-swarm-map` that follows each clone (cloning `swarm-map` makes a `swarm-map` dir, so the quickstart was left broken, not just stale). - LICENSE project header, bin/dev.sh comment: display name. - swarm_map_policy template docs: display name + repo link. - check_sanitization.py: the semantic gate's allowlist named only the OLD product/org. Left as-is it would start flagging legitimate mentions of "Swarm Map" / "swarm-map" / "NimbleCoOrg" as downstream particulars and fail PRs closed. Now names both current and former identities. Deliberately NOT touched: the `~/.hermes-swarm-map/` data dir (renaming it orphans every existing install's settings), `HSM_URL`, `HERMES_AGENT_NAME`, the `swarm_map_policy` dir name (all wired into deployed agents' config.yaml/.env — group checks fail closed, so a rename is a fleet-wide breaking change), and historical docs/blog prose (the redirect carries it). Refs: memory/plans/2026-07-18-swarm-map-org-transfer-runbook.md §2B/§2C/§2D
- package-lock.json: `name` still said hermes-swarm-map while package.json said swarm-map. Harmless-looking, but CONTRIBUTING.md and docs/getting-started.md both tell a new contributor to run `npm install`, and npm silently rewrites those two lines and exits 0 — so the contributor's first action dirties a 466 KB generated file. Hand-edited the two `name` fields ONLY; deliberately NOT regenerated, so the pinned tree osv-scanner.yml scans is byte-identical. - CONTRIBUTING.md + AGENTS.md: project-structure diagrams still labelled the repo root `hermes-swarm-map/`. Anchored the edit to the diagram root lines so the `~/.hermes-swarm-map/` DATA DIR references (8 of them, deliberately kept) are untouched. - docs/ROADMAP.md: H1 was still the old product name on a README-linked doc. Verified: lockfile is valid JSON, its dependency sets still match package.json exactly (13/13 + 16/16), the data-dir literal count is unchanged, and scripts/test_check_sanitization.py is 46/46.
Audit finding, reproduced live. `kill_own_zombies` tested `ps -o command=` against `(next|node).*$PROJECT_NAME`, but `next dev` execs to the bare title `next-server (v16.2.6)` — no path in the command string at all — so the grep never matched and the reaper silently reaped nothing. `PROJECT_NAME` was also still the pre-rename literal `hermes-swarm-map`, so even a path-bearing process would have missed after the rename. Now identifies ownership by the process's working directory (`lsof -a -p <pid> -d cwd -Fn`) compared against `git rev-parse --show-toplevel`. That matches correctly, works from a worktree, and is rename-proof — no PROJECT_NAME needed, so the dead literal is gone. Kept conservative: if cwd cannot be read, we do NOT kill. A reaper that guesses is worse than one that misses. Verified against a real `next dev` on port 3987: command string is `next-server (v16.2.6)` (confirming the old grep could never match) while cwd equals the repo root, so the new check identifies it correctly.
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.
Post-transfer cleanup. The repo is now
NimbleCoOrg/swarm-map; #162 already landed the product display strings. This closes the surfaces that break or mislead, not merely read old.What changed
README.md,CONTRIBUTING.md,docs/getting-started.mdhadgit clone …/hermes-swarm-map.gitfollowed bycd hermes-swarm-map. Cloningswarm-mapcreates aswarm-mapdir, so thecdfailed. Both lines fixed.scripts/check_sanitization.py— the semantic gate's "do NOT flag" allowlist named only the old product and org. Left alone it would begin flagging legitimate mentions of "Swarm Map" /swarm-map/NimbleCoOrgas downstream particulars and fail PRs closed. Now names current and former identities.LICENSEproject header,bin/dev.shcomment,swarm_map_policytemplate docs (display name + repo link).Deliberately NOT touched
Per runbook §2C/§2D — these are migration-safety, not oversights:
~/.hermes-swarm-map/data dir — renaming orphans every existing install's settings (Mini, Primo/churbot).HSM_URL,HERMES_AGENT_NAME, theswarm_map_policydir name — wired into every deployed agent'sconfig.yaml/.env. Group checks are fail-closed, so a rename is a fleet-wide breaking change.docs/and blog prose — the GitHub redirect carries it.Verification
scripts/test_check_sanitization.py: 46/46 pass.ANTHROPIC_API_KEYrepo secret survived the inter-org transfer, and a silent skip of this gate was flagged as the worst-case failure mode of the whole move.Refs:
memory/plans/2026-07-18-swarm-map-org-transfer-runbook.md§2B/§2C/§2D (D4)🤖 Generated with Claude Code