Skip to content

chore(skills): remove cross-node-sync skill - #1106

Closed
liususan091219 wants to merge 1 commit into
sonichi:mainfrom
liususan091219:chore/remove-cross-node-sync
Closed

liususan091219 wants to merge 1 commit into
sonichi:mainfrom
liususan091219:chore/remove-cross-node-sync

Conversation

@liususan091219

Copy link
Copy Markdown
Collaborator

Summary

  • Removes skills/cross-node-sync/ (skill + scripts + tests) entirely
  • Removes the corresponding row from the README.md capability table

Why

Per owner direction (2026-05-25):

  • The skill's per-fleet scope (Studio↔MacBook only on the original deployer) made it a poor fit for a public-product surface — the cross-node-sync target only worked under specific 2-node setups, never generalized.
  • setup-rsync-sync.sh had 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 a notes/ push to an unresponsive peer-dir).
  • Skill removal supersedes feat(cross-node-sync): make sync scope (include / exclude paths) configurable per-operator #1044 (which proposed making the scope configurable per-operator) — moot now that the skill is being removed.

Test plan

  • git status clean after removal
  • grep for cross-node-sync across *.py / *.ts / *.sh / *.json / *.md — only references were inside the removed dir itself + the one README.md table row that's also removed
  • No imports of cross-node-sync from any other skill or src/ file

What 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)

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 bassilkhilo-ag2 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 sonichi left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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_DIR across *.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.

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.

feat(cross-node-sync): make sync scope (include / exclude paths) configurable per-operator

3 participants