agents_skill_vault 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b339666f25ca1e000fff3b11d41645fa5bbab46427c90c80c7cae4b12642558e
4
- data.tar.gz: 72692513935d521f5e478775eacd31a1e3cc79850f2b1381756671345ff0c06e
3
+ metadata.gz: 6bb7916e4c84c115dfd3da09e0203c4477c2c5cbbcd018902a006feef2eb8ca0
4
+ data.tar.gz: c17693603e9d5ecca7f1fca6291eddfd336e7e306a340d2c1ffa43f13c2bbad8
5
5
  SHA512:
6
- metadata.gz: c4fe6bd713ef790c672b153cf57b4297dbad448d52c2534a6ed50ee685a4d568c451edd66f774b00f1af502a79417d39d6bd1f605901e42ec732630302d85d6d
7
- data.tar.gz: c53947f7a8f7aaea9ca83b1b382d18dfa238149110d4c93b71aefb3599b96cbebdfd18fdc7dbe6885a508747de3c5433a2da1f035004e946b616a88b8d43f13d
6
+ metadata.gz: 43fcce93096dff841ccd7b79e67e341f4cd2d6bfe05f83de1f7a9229bc04ec625a986198c1df6cd8bdb062328d7170024f9423ab6bad4e3b4e52daf89a921a96
7
+ data.tar.gz: 546f557a9f545b00fb5297db174a767aecdf08449807297e90654a91758602b931b26ff0c5016fdd909ae335065086f672057ebe231a0a1a9599d2c1f5a0cf3a
data/CHANGELOG.md CHANGED
@@ -1,4 +1,15 @@
1
- ## [Unreleased]
1
+ ## [0.3.0] - 2026-02-04
2
+
3
+ ### Bug Fixes
4
+
5
+ - **Sync works for individual skills from multi-skill repositories**
6
+ Previously, syncing a skill like `vault.sync("user/repo/skill-name")` would fail if the resource was added as part of a full repository. The sync operation would try to re-add the skill instead of updating it, causing a `DuplicateLabel` error. Now it correctly finds and updates existing skills.
7
+
8
+ - **Legacy resources are now upgraded automatically**
9
+ Resources added before version 0.3.0 had `nil` values for `skill_name`. Syncing these resources now automatically fills in the missing `skill_name`, upgrading them to the current format.
10
+
11
+ - **Fixed crash when adding repositories**
12
+ Adding a repository would crash with `uninitialized constant Errors::Error`. This was caused by a missing require statement in the git operations module. The error is now properly raised and handled.
2
13
 
3
14
  ## [0.2.0] - 2026-01-29
4
15
 
@@ -30,8 +41,6 @@
30
41
 
31
42
  ## [0.1.0] - 2026-01-25
32
43
 
33
- ## [0.1.0] - 2026-01-25
34
-
35
44
  ### Features
36
45
 
37
46
  - Add GitHub repositories, folders, or individual files to a local vault
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "open3"
4
+ require_relative "errors/base"
4
5
 
5
6
  module AgentsSkillVault
6
7
  # Provides Git operations for cloning, syncing, and managing repositories.
@@ -139,7 +140,7 @@ module AgentsSkillVault
139
140
  def run_command(command)
140
141
  stdout, stderr, status = Open3.capture3(command)
141
142
 
142
- raise Error, "Command failed: #{command}\n#{stderr}" unless status.success?
143
+ raise Errors::Error, "Command failed: #{command}\n#{stderr}" unless status.success?
143
144
 
144
145
  [stdout, stderr]
145
146
  end
@@ -131,7 +131,7 @@ module AgentsSkillVault
131
131
 
132
132
  resource = build_skill_resource(
133
133
  skill_label, repo_url, parsed_url, skill[:folder_path],
134
- skill[:folder_path], target_path
134
+ skill[:folder_path], target_path, skill[:folder_path]
135
135
  )
136
136
 
137
137
  validate_and_update_resource(resource, skill[:folder_path], target_path)
@@ -108,6 +108,7 @@ module AgentsSkillVault
108
108
  def process_skill_sync(resource, skill, existing_resources)
109
109
  skill_label = "#{resource.username}/#{resource.repo}/#{skill[:skill_name]}"
110
110
  existing = existing_resources.find { |r| r.skill_name == skill[:skill_name] }
111
+ existing ||= existing_resources.find { |r| r.label == skill_label }
111
112
 
112
113
  if existing
113
114
  revalidate_existing_skill(resource, existing, skill)
@@ -130,7 +131,9 @@ module AgentsSkillVault
130
131
  updated = Resource.from_h(
131
132
  existing.to_h.merge(
132
133
  validation_status: result[:valid] ? :valid_skill : :invalid_skill,
133
- validation_errors: result[:errors]
134
+ validation_errors: result[:errors],
135
+ skill_name: existing.skill_name || skill[:skill_name],
136
+ is_skill: true
134
137
  ),
135
138
  storage_path: storage_path
136
139
  )
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module AgentsSkillVault
4
- VERSION = "0.2.0"
4
+ VERSION = "0.3.0"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: agents_skill_vault
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lucian Ghinda