Skip to content

rebrand(D4): finish the load-bearing name/URL sweep post-transfer - #187

Merged
juniperbevensee merged 3 commits into
mainfrom
dev/juniperbevensee/sm-rebrand-strings
Jul 29, 2026
Merged

rebrand(D4): finish the load-bearing name/URL sweep post-transfer#187
juniperbevensee merged 3 commits into
mainfrom
dev/juniperbevensee/sm-rebrand-strings

Conversation

@juniperbevensee

Copy link
Copy Markdown
Collaborator

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

  • Quickstart was actually broken, not just staleREADME.md, CONTRIBUTING.md, docs/getting-started.md had git clone …/hermes-swarm-map.git followed by cd hermes-swarm-map. Cloning swarm-map creates a swarm-map dir, so the cd failed. 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 / NimbleCoOrg as downstream particulars and fail PRs closed. Now names current and former identities.
  • LICENSE project header, bin/dev.sh comment, swarm_map_policy template 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, the swarm_map_policy dir name — wired into every deployed agent's config.yaml/.env. Group checks are fail-closed, so a rename is a fleet-wide breaking change.
  • Historical docs/ and blog prose — the GitHub redirect carries it.

Verification

  • scripts/test_check_sanitization.py: 46/46 pass.
  • This PR also serves as the runbook's mandatory post-transfer green-run check on the sanitization gate — the ANTHROPIC_API_KEY repo 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

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.
@juniperbevensee
juniperbevensee merged commit c6f455d into main Jul 29, 2026
3 checks passed
@juniperbevensee
juniperbevensee deleted the dev/juniperbevensee/sm-rebrand-strings branch July 30, 2026 01:56
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