Skip to content

fix: isolate Sinapsis registry from skill-router (v4.6.1)#20

Merged
Luispitik merged 1 commit into
mainfrom
fix/registry-collision
Jun 2, 2026
Merged

fix: isolate Sinapsis registry from skill-router (v4.6.1)#20
Luispitik merged 1 commit into
mainfrom
fix/registry-collision

Conversation

@Luispitik

Copy link
Copy Markdown
Owner

Registry filename collision fix (v4.6.1)

Sinapsis used ~/.claude/skills/_projects.json as its canonical project registry, but that filename is also owned by the bundled skill-router skill (and external launchers) with a different schema (id/category/path/... vs id/root/remote/...). On a machine where a launcher owns _projects.json, the session-learner upsert (v4.3.3) appended Sinapsis hash-entries into the launcher's registry on every Stop event — two schemas colliding in one file.

Fix

Sinapsis now owns a dedicated ~/.claude/skills/_sinapsis-projects.json; _projects.json is left entirely to skill-router.

  • Writer (_session-learner.sh), readers (_eod-gather.sh, _generate-dashboard.py, /projects, /instinct-status, /evolve, /backup, /dashboard-sinapsis), template (core/_sinapsis-projects.json) and installers all use the dedicated name.
  • skill-router/SKILL.md keeps _projects.json.
  • No migration needed: the learner repopulates the new registry on Stop; the gather keeps the legacy homunculus/projects.json fallback.

Tests

  • New tests/test-registry-isolation.sh (4 tests). test-install-upgrade + test-eod-gather updated to the new filename.
  • Full suite green: registry-isolation 4/4 · install-upgrade 21/21 · eod-gather 8/8 · v46 8/8 · v45 11/11 · dashboard 12/12 · security 11/11 · gstack 18/18 · v433 14/14 · dream 25/25.

🤖 Generated with Claude Code

Sinapsis used ~/.claude/skills/_projects.json as its canonical project registry,
but that filename is also owned by the bundled skill-router skill (and external
launchers) with a different schema. The session-learner upsert (added in v4.3.3)
would append Sinapsis hash-entries into the launcher's registry on every Stop
event, mixing two schemas in one file.

Sinapsis now owns ~/.claude/skills/_sinapsis-projects.json; _projects.json is
left entirely to skill-router. The learner repopulates the new registry
automatically on Stop (no migration needed), and _eod-gather.sh reads it with
the legacy homunculus/projects.json fallback unchanged.

- Rename writer (_session-learner.sh), readers (_eod-gather.sh,
  _generate-dashboard.py, commands), template (core/_sinapsis-projects.json)
  and installers to the dedicated filename. skill-router keeps _projects.json.
- New tests/test-registry-isolation.sh; test-install-upgrade + test-eod-gather
  updated. Full suite green (10 suites).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@Luispitik Luispitik merged commit 350de65 into main Jun 2, 2026
@Luispitik Luispitik deleted the fix/registry-collision branch June 2, 2026 06:59
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