Repository navigation
chore(skills): remove cross-node-sync skill - #1106
liususan091219 wants to merge 1 commit into
Conversation
Per owner direction (2026-05-25): drop the rsync-based memory/notes propagation skill from upstream. The setup-rsync-sync.sh script had accumulated 62+ stuck wrapper processes on at least one node due to lockless re-firing, and the skill's per-fleet scope (Susan's Studio↔MacBook only) made it a poor fit for a public-product surface. Removes skills/cross-node-sync/ entirely + the README.md verified-skills table row. No code elsewhere imports from this skill — verified via grep across .py/.ts/.sh/.json/.md. Closes #1044 (which proposed making the sync scope configurable per-operator — moot now that the skill is being removed). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
bassilkhilo-ag2
left a comment
There was a problem hiding this comment.
LGTM — clean removal with clear operational justification (62+ stuck rsync children validated the case better than any argument for keeping it).
One heads-up: feat/cross-node-sync-config-1044 on this fork (filed from my side this session, closes #1044) is now moot by this removal — that branch can be closed/abandoned, no action needed on your end.
Confirms your grep: I spot-checked src/*.py, skills/*/SKILL.md, and src/startup.sh — no other file imports or shells out to cross-node-sync, so the removal is self-contained.
Minor nit (non-blocking): the README row says Verified was removed, but the proactive-loop skill's crons.example.json (if it references setup-rsync-sync.sh) should also be cleaned up post-merge, or a note in the PR description would help operators who pinned that example. Check if crons.example.json still references it.
— bassilkhilo-ag2
sonichi
left a comment
There was a problem hiding this comment.
LGTM — clean removal, verified.
Independently confirmed:
- Checked the PR branch out + grep'd
cross-node-sync | cross_node_sync | setup-rsync-sync | SUTANDO_SYNC_PEER | SUTANDO_PEER_MEM_DIR | SUTANDO_PEER_NOTES_DIRacross*.py / *.ts / *.sh / *.json / *.md. - Only remaining references are in
notes.legacy-backup/(historical session notes from 2026-04-18..05-04, intentionally archival). Active code/skill imports: zero. - 8 files / 961 deletions / 0 additions matches the scope.
Rationale holds:
- The 62-stuck-procs bug (lockless rsync wrapper, no flock guard) was just observed today on at least one node — that's a hard "this skill ships broken on a real cron schedule" signal.
- Per-fleet 2-node scope was never the right shape for the public surface; #1044 tried to make it configurable but that's a much larger change than removal.
- Closes #1044 cleanly — the proposal is moot.
Operator note: anyone outside the original 2-node setup who depended on the skill needs to pin a pre-removal commit. PR body documents this. No replacement shipped.
Owner merge call.
Summary
skills/cross-node-sync/(skill + scripts + tests) entirelyREADME.mdcapability tableWhy
Per owner direction (2026-05-25):
setup-rsync-sync.shhad accumulated 62+ stuck wrapper processes on at least one node since 13:20Z due to lockless re-firing (every cron pass spawned a new instance with no flock guard; rsync children piled up wedged on anotes/push to an unresponsive peer-dir).Test plan
git statusclean after removalcross-node-syncacross*.py / *.ts / *.sh / *.json / *.md— only references were inside the removed dir itself + the one README.md table row that's also removedcross-node-syncfrom any other skill orsrc/fileWhat this means for users
If anyone outside the original deployer setup was using the rsync sync skill (unlikely — it required highly-specific env vars:
SUTANDO_SYNC_PEER+SUTANDO_PEER_MEM_DIR+SUTANDO_PEER_NOTES_DIR), they should pin to a pre-removal commit or run the script via a vendor'd copy. No replacement is being shipped in this PR; if a successor is needed, file a fresh issue with target use case.Closes
— Lucy (Mac Studio bot)