legionio 1.8.14 → 1.8.16

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: 47d2f43298e4d606c1a6817bddee1bc2e09fe63c78bcae858c45cdc29622ab85
4
- data.tar.gz: 6043356cca31ed43034509f3c4e0f6de5b37dc8cc72011c4442cf50c072e392a
3
+ metadata.gz: 7565dee1ffc3d39358bae7bcde3e0c3af8368ede4f8948b6f9c1c618b7a96001
4
+ data.tar.gz: 033d14bde74d0b753da46cc5cc45e2f600655a1be402c157b64f36284e9aa88c
5
5
  SHA512:
6
- metadata.gz: 29daf6503fc9a0fa6fd893d50b1dc05ac35040c6ed3b49024cb46df6863efe173a69b87c0bee65a5aaa65f6779b50f16784487cddde26c8ed92dfedc816a12c9
7
- data.tar.gz: 90d6980b55176786950d8da78ace2f902c5974f1c2d5887a73eab97b7fb690a2cdb9fde657eeeddd44ee839d42d0fda4bbfe83dda2d9ee8f75cbef08e7b4941b
6
+ metadata.gz: b70ac4808b1322dffc0b58d169140ce3d2ea7b524658097b16fae4f9a563245e38be2116854f75decdecd58b1eda72cec9448193168110d485a9b00887ac544b
7
+ data.tar.gz: 6b929b04626948f04993aac61d41da43231e4c66f6a1b6e60196e69b7cf71acc45bb34cf7fb8b3c5c7bcc60ca60a1bcc5c667fbc1101b11b37aaf247a7817db9
data/CHANGELOG.md CHANGED
@@ -2,6 +2,20 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+
6
+ ## [1.8.16] - 2026-04-22
7
+
8
+ ### Added
9
+ - `legion mind-growth wire ID` CLI command — wires a built extension into the cognitive tick cycle via `Orchestrator.post_build_pipeline`; accepts `--phase` override option
10
+
11
+ ### Fixed
12
+ - `MindGrowth#wire` rescue block now logs errors via `Legion::Logging.error` before displaying them, ensuring errors are captured in the daemon log and not only printed to the terminal
13
+
14
+ ## [1.8.15] - 2026-04-22
15
+
16
+ ### Fixed
17
+ - `legionio knowledge ingest <file>` no longer returns `API 500 for /api/knowledge/ingest`. Two halves of the same contract mismatch: (a) the CLI previously forwarded `dry_run:` on every call (now only when `--dry-run` is passed), and (b) the `/api/knowledge/ingest` route forwarded `dry_run:` to `Legion::Extensions::Knowledge::Runners::Ingest.ingest_file`, whose signature in `lex-knowledge` 0.6.7 is `ingest_file(file_path:, force:)` — causing `ArgumentError: unknown keyword: :dry_run`. The kwarg remains honored for directory (corpus) ingests, which support preview scans. Adds regression coverage in `spec/legion/cli/knowledge_command_spec.rb` (negative-case for file ingest) and a new `spec/api/knowledge_spec.rb` covering the file/directory/dry_run branches of the route.
18
+
5
19
  ## [1.8.14] - 2026-04-18
6
20
 
7
21
  ### Fixed
@@ -55,8 +55,7 @@ module Legion
55
55
  else
56
56
  Legion::Extensions::Knowledge::Runners::Ingest.ingest_file(
57
57
  file_path: body[:path],
58
- force: body[:force] || false,
59
- dry_run: body[:dry_run] || false
58
+ force: body[:force] || false
60
59
  )
61
60
  end
62
61
  else
@@ -320,8 +320,9 @@ module Legion
320
320
  option :force, type: :boolean, default: false, desc: 'Re-ingest even unchanged files'
321
321
  option :dry_run, type: :boolean, default: false, desc: 'Preview without writing'
322
322
  def ingest(path)
323
- result = api_post('/api/knowledge/ingest',
324
- path: ::File.expand_path(path), force: options[:force], dry_run: options[:dry_run])
323
+ payload = { path: ::File.expand_path(path), force: options[:force] }
324
+ payload[:dry_run] = options[:dry_run] if options[:dry_run]
325
+ result = api_post('/api/knowledge/ingest', **payload)
325
326
  out = formatter
326
327
  if options[:json]
327
328
  out.json(result)
@@ -179,6 +179,28 @@ module Legion
179
179
  end
180
180
  end
181
181
 
182
+ desc 'wire ID', 'Wire a built extension into the cognitive tick cycle'
183
+ option :phase, type: :string, desc: 'Override phase (auto-detected if omitted)'
184
+ def wire(proposal_id)
185
+ require_mind_growth!
186
+ result = Legion::Extensions::MindGrowth::Runners::Orchestrator.post_build_pipeline(
187
+ proposal_id: proposal_id
188
+ )
189
+
190
+ if result[:skipped]
191
+ say_status :skipped, result[:reason], :yellow
192
+ elsif result[:activated]
193
+ say_status :activated, "#{proposal_id} wired and activated", :green
194
+ elsif result[:error]
195
+ say_status :error, result[:error], :red
196
+ else
197
+ say_status :partial, "Wire: #{result[:wire]}, Test: #{result[:integration_test]}", :yellow
198
+ end
199
+ rescue StandardError => e
200
+ Legion::Logging.error(e.message) if defined?(Legion::Logging)
201
+ say_status :error, e.message, :red
202
+ end
203
+
182
204
  desc 'history', 'Show recent proposal history'
183
205
  option :limit, type: :numeric, default: 50, desc: 'Max results'
184
206
  def history
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Legion
4
- VERSION = '1.8.14'
4
+ VERSION = '1.8.16'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: legionio
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.8.14
4
+ version: 1.8.16
5
5
  platform: ruby
6
6
  authors:
7
7
  - Esity