kairos-chain 2.0.2 → 2.0.3

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: 55d548669cc17cb03a2383d2ffc164e991fdaf20268d8600bf67d9720d16635e
4
- data.tar.gz: fea72512c6c3dd2ab6265eea9b2c8f4fea81bed97556aca19fd3699c3014f565
3
+ metadata.gz: adf8ce37ef7cfcd174f3800a5434e0c0be92629d4201262d0639075a2958a06c
4
+ data.tar.gz: 1ffb3dcd1c70f3d7e069c9e360af5bb797d966fb96bc9f5fdd9f1b975c2a00c9
5
5
  SHA512:
6
- metadata.gz: cd6d5385186edfb65081e3ea97e96be3e42eb47dc27d863ea65767c532df1a39cc8adff22dc716123f7ac2574619db90e368b5bda58d961de63bdc857862c014
7
- data.tar.gz: 627fb035955f7f6b9050d58c6e72635a818b4385a27e331614513d3c1e1fefe86c8025efa0e799c19e4b18a3c44b7ee5ddc3616601ea03bfc0642cf083de843f
6
+ metadata.gz: ad2aa01dcf5a4819217eccac652b9afd188e171cce54a39b1a826071862fbb5f56a714a34508a51e6ed0cb6c1113beb0e81cabd60229aed0250e9a0084327e53
7
+ data.tar.gz: b47f7fb61751282c2a3e4456b405b39a35999c9c7ae599aedeefcdfef6aef5571231a4251086981321c59933e3797b8a3aca40e041427bdb2c0334132e93b8ea
data/CHANGELOG.md CHANGED
@@ -4,6 +4,17 @@ All notable changes to the `kairos-chain` gem will be documented in this file.
4
4
 
5
5
  This project follows [Semantic Versioning](https://semver.org/).
6
6
 
7
+ ## [2.0.3] - 2026-02-24
8
+
9
+ ### Fixed
10
+
11
+ - **Bug#1**: `SafeEvolver::DSL_PATH` undefined constant in `approval_workflow` skill behavior — changed to `KairosMcp.dsl_path` (L0 evolution was completely broken)
12
+ - **Bug#3a**: `ContextManager#get` undefined method in `skills_promote` — corrected to `get_context` (L2→L1 promotion was broken)
13
+ - **Bug#3b**: `SkillEntry#raw_content` undefined attribute in `skills_promote` — replaced with `File.read(context.md_file_path)` for L2 content loading
14
+ - **Bug#3c**: UTF-8 encoding errors on non-UTF-8 locales — added `Encoding.default_external/internal` in `bin/kairos-chain` and explicit `encoding: 'UTF-8'` to `File.read` calls in `anthropic_skill_parser.rb` and `skills_promote.rb`
15
+
16
+ ---
17
+
7
18
  ## [2.0.2] - 2026-02-23
8
19
 
9
20
  ### Added
@@ -167,6 +178,7 @@ This project follows [Semantic Versioning](https://semver.org/).
167
178
  - Skill promotion with Persona Assembly
168
179
  - Tool guide and metadata system
169
180
 
181
+ [2.0.3]: https://github.com/masaomi/KairosChain_2026/compare/v2.0.2...v2.0.3
170
182
  [2.0.2]: https://github.com/masaomi/KairosChain_2026/compare/v2.0.1...v2.0.2
171
183
  [2.0.1]: https://github.com/masaomi/KairosChain_2026/compare/v2.0.0...v2.0.1
172
184
  [2.0.0]: https://github.com/masaomi/KairosChain_2026/compare/v1.2.0...v2.0.0
data/bin/kairos-chain CHANGED
@@ -1,5 +1,10 @@
1
1
  #!/usr/bin/env ruby
2
2
  # frozen_string_literal: true
3
+ # encoding: utf-8
4
+
5
+ # Ensure UTF-8 encoding for all file I/O
6
+ Encoding.default_external = Encoding::UTF_8
7
+ Encoding.default_internal = Encoding::UTF_8
3
8
 
4
9
  # KairosChain - Memory-driven agent framework
5
10
  #
@@ -68,7 +68,7 @@ module KairosMcp
68
68
  md_file = find_md_file(skill_dir)
69
69
  return nil unless md_file
70
70
 
71
- content = File.read(md_file)
71
+ content = File.read(md_file, encoding: 'UTF-8')
72
72
  frontmatter, body = extract_frontmatter(content)
73
73
 
74
74
  skill_name = File.basename(skill_dir)
@@ -255,14 +255,15 @@ module KairosMcp
255
255
  when 'L2'
256
256
  session_id = args['session_id']
257
257
  manager = ContextManager.new
258
- context = manager.get(session_id, source_name)
258
+ context = manager.get_context(session_id, source_name)
259
259
  return { error: "Context '#{source_name}' not found in session '#{session_id}'" } unless context
260
- { content: context.raw_content, metadata: context.to_h }
260
+ content = File.read(context.md_file_path, encoding: 'UTF-8')
261
+ { content: content, metadata: context.to_h }
261
262
  when 'L1'
262
263
  provider = KnowledgeProvider.new
263
264
  knowledge = provider.get(source_name)
264
265
  return { error: "Knowledge '#{source_name}' not found" } unless knowledge
265
- content = File.read(knowledge.md_file_path)
266
+ content = File.read(knowledge.md_file_path, encoding: 'UTF-8')
266
267
  { content: content, metadata: knowledge.to_h }
267
268
  else
268
269
  { error: "Unknown source layer: #{from_layer}" }
@@ -280,7 +281,7 @@ module KairosMcp
280
281
  }
281
282
  end
282
283
 
283
- content = File.read(knowledge.md_file_path)
284
+ content = File.read(knowledge.md_file_path, encoding: 'UTF-8')
284
285
  { definitions: content }
285
286
  rescue StandardError => e
286
287
  {
@@ -1,4 +1,4 @@
1
1
  module KairosMcp
2
- VERSION = "2.0.2"
2
+ VERSION = "2.0.3"
3
3
  CHANGELOG_URL = "https://github.com/masaomi/KairosChain_2026/blob/main/CHANGELOG.md"
4
4
  end
@@ -340,8 +340,8 @@ skill :approval_workflow do
340
340
  # === 3. SCOPE CHECKS (Mechanical) ===
341
341
 
342
342
  # 3.1 Rollback possible (versions directory exists)
343
- # Derive path from SafeEvolver::DSL_PATH which points to skills/kairos.rb
344
- dsl_dir = File.dirname(KairosMcp::SafeEvolver::DSL_PATH)
343
+ # Derive path from KairosMcp.dsl_path which points to skills/kairos.rb
344
+ dsl_dir = File.dirname(KairosMcp.dsl_path)
345
345
  versions_dir = File.join(dsl_dir, 'versions')
346
346
  rollback_possible = Dir.exist?(versions_dir)
347
347
  checks << {
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kairos-chain
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.2
4
+ version: 2.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Masa Hatakeyama
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-02-23 00:00:00.000000000 Z
11
+ date: 2026-02-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: minitest