This release adds 2 notable features for engineering teams evaluating rollout.
✓ No known CVEs patched in this version
Topics
+12 more
Affected surfaces
ReleasePort's take
Light signalHivemind v0.7.20 fixes duplicate skills via Git URL normalization and prevents silent overwrites of shared skills by gating project vs global sources.
Why it matters: Upgrade to prevent silent overwrites of teammates' shared skills. This release normalizes Git URL variants for consistent project identification and gates project-scoped vs global-read-only skills.
Summary
AI summaryFixed duplicate skills by preserving created_at, normalizing git remotes for project_key, and making the gate read both project and global skill directories.
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| Feature | Medium |
Skills now include creation and modification timestamps for better tracking. Skills now include creation and modification timestamps for better tracking. Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Feature | Medium |
Enhanced existing skills display showing both project and global read-only skills with clear source labels. Enhanced existing skills display showing both project and global read-only skills with clear source labels. Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Bugfix | Medium |
Gate now reads both project and global skills, tagging entries as `[project]` or `[global, read-only]`, preventing silent overwriting of teammates' work. Gate now reads both project and global skills, tagging entries as `[project]` or `[global, read-only]`, preventing silent overwriting of teammates' work. Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Bugfix | Medium |
Preserve `created_at` across MERGE in skills table by threading v=1 value through `SkillWriteResult` instead of stamping `now()`. Preserve `created_at` across MERGE in skills table by threading v=1 value through `SkillWriteResult` instead of stamping `now()`. Source: llm_adapter@2026-05-21 Confidence: low |
— |
| Bugfix | Medium |
Normalize Git remote URL before hashing for projectKey to unify variants like SSH/HTTPS/.git/credentials into canonical host/owner/repo form. Normalize Git remote URL before hashing for projectKey to unify variants like SSH/HTTPS/.git/credentials into canonical host/owner/repo form. Source: llm_adapter@2026-05-21 Confidence: low |
— |
| Bugfix | Medium |
Preserve `created_at` across MERGE in the skills table. Preserve `created_at` across MERGE in the skills table. Source: granite4.1:30b@2026-05-23-audit Confidence: low |
— |
| Bugfix | Medium |
Normalize Git remote URLs before hashing for projectKey to unify variants. Normalize Git remote URLs before hashing for projectKey to unify variants. Source: granite4.1:30b@2026-05-23-audit Confidence: low |
— |
Full changelog
Summary
Three tactical fixes for the cross-author and cross-project duplicate skills problem on the skills Deeplake table. Each commit is independent and focused; landing all three closes the gap that produced the duplicates we currently have in prod (e.g. meta-harness-continual-learning ↔ continual-learning-meta-harness, the three near-identical hivemind-*-testing skills).
What was actually broken
-
created_atwas reset on every MERGE. All 27 rows in the prodskillstable havecreated_at == updated_atbecause the worker stampednow()on both fields at every INSERT. The local SKILL.md frontmatter already preserved the v=1 creation date correctly — only the DB row didn't see it. -
deriveProjectKeyhashed the raw git remote URL. Five surface forms of the same repo (git@...,https://..., with/without.git, with embedded credentials) produced five differentproject_keyvalues. Two devs cloning the same repo with different URL styles ended up with disjoint state. -
The gate only read
<cwd>/.claude/skills/, never~/.claude/skills/. Autopull lands skills under the global root regardless of scope-config; the worker only looked at the project root. With the defaultinstall=project, the gate saw zero existing skills no matter how many had been autopulled — so every mining run started from a blank slate and re-created near-identical skills.
Commits
fix(skilify): preserve created_at across MERGE in skills table— thread the v=1created_atthroughSkillWriteResultinstead of stampingnow().fix(skilify): normalize git remote URL before hashing for projectKey— collapse SSH/HTTPS/.git/cred variants to a canonicalhost/owner/repoform.fix(skilify): gate reads project + global skills, only [project] mergeable— extract the existing-skills logic into a testable module, read both roots, tag entries[project](MERGE-eligible) or[global, read-only](reference only). Cross-author MERGE intentionally stays forbidden in this PR.
Out of scope (filed separately)
- Cross-author MERGE with a
contributorscolumn and auto-promoteme → teamon cross-author edits — see activeloopai/hivemind#118. The interim restriction in this PR (MERGE only into your own project skills) avoids silently overwriting teammates' work until that lands. - Compaction of old version rows (e.g. 7
skills-autopull-fanout-symlinksversions) — purely a storage-bloat concern, not a correctness one.
Test plan
- [x]
npm run buildclean - [x]
npm test— 2189 passing (was 2175 before; +14 from new tests) - [x] New tests:
skilify-state.test.ts(URL normalization, 4 cases),skilify-skill-writer.test.ts(createdAt threading throughSkillWriteResult),skilify-existing-skills.test.ts(7 cases: both roots, dedupe project-wins, source tagging, char-cap placeholder) - [x] Bundle-scan tests updated for new gate-prompt heading
- [ ] Manual smoke: run a session in a project with autopulled global skills, confirm the gate prompt now mentions them as
[global, read-only]
Summary by CodeRabbit
Release Notes
-
New Features
- Skills now include creation and modification timestamps for better tracking.
- Enhanced existing skills display showing both project and global read-only skills with clear source labels.
-
Improvements
- Clarified merge eligibility rules in skill curation prompts—only project skills are valid merge targets; global skills are reference-only references.
- Improved project identification through consistent normalization of Git remote URLs.
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
Track Hivemind turns agent traces into skills and shares with your team
Get notified when new releases ship.
Sign up freeAbout Hivemind turns agent traces into skills and shares with your team
All releases →Related context
Related tools
Earlier breaking changes
- v0.7.52 Removes `hivemind tasks` CLI and related code surfaces.
- v0.7.51 Removes `hivemind tasks` CLI and related code surfaces.
- v0.7.19 Module name skilify replaced with skillify; affects all imports
- v0.7.19 CLI command skilify removed; renamed to skillify without deprecation alias
- v0.7.18 CLI subcommand renamed from `skilify` to `skillify`; no deprecation alias.
Beta — feedback welcome: [email protected]