Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1133 commits
Select commit Hold shift + click to select a range
76e639f
bump to 1.7.36, add changelog for venv env var override
Esity Apr 9, 2026
032f789
Merge pull request #128 from LegionIO/feature/python-venv-cellar
Esity Apr 9, 2026
002b94f
add trigger_words DSL to Tools::Base
Esity Apr 10, 2026
b90f910
add trigger_words default to Extensions::Core
Esity Apr 10, 2026
24c7ea9
wire trigger_words into runner builder
Esity Apr 10, 2026
97f6509
pass trigger_words through Tools::Discovery to tool classes
Esity Apr 10, 2026
9191460
add TriggerIndex singleton with Concurrent::Map-backed reverse index
Esity Apr 10, 2026
857fe9b
add require 'set' to trigger_index.rb
Esity Apr 10, 2026
5965ac0
wire TriggerIndex.build_async! into boot and reload paths # pipeline-…
Esity Apr 10, 2026
c646719
bump version and update changelog for trigger word tool injection
Esity Apr 10, 2026
dc956aa
Merge branch 'main' into feature/trigger-word-tool-injection
Esity Apr 10, 2026
1e01074
apply copilot review suggestions (#129)
Esity Apr 10, 2026
107633b
fix SSE and NDJSON output to use compact JSON via Legion::JSON.genera…
Esity Apr 10, 2026
21eed86
Merge pull request #129 from LegionIO/feature/trigger-word-tool-injec…
Esity Apr 10, 2026
9f2741c
feat(skills): add Builders::Skills parallel to Builders::Runners
Apr 12, 2026
5108fba
feat(skills): wire Builders::Skills into Extensions::Core
Apr 12, 2026
8bfa48e
feat(skills): add skills_required? skip guard in extensions loader
Apr 12, 2026
04917ed
feat(skills): refactor Chat::Skills to delegate to Registry; remove e…
Esity Apr 12, 2026
a009a8d
feat(skills): add skills REST endpoints and fix llm.rb metadata merge
Esity Apr 12, 2026
5f18655
feat(skills): rewrite skill_command as daemon HTTP client; add Daemon…
Esity Apr 12, 2026
2df026b
feat(skills): finalize skill_command daemon HTTP client with updated …
Esity Apr 12, 2026
567d58d
style(skills): apply rubocop auto-corrections to skills specs
Esity Apr 12, 2026
50aea1a
bump to 1.8.0, add changelog for daemon-side skills system
Esity Apr 12, 2026
3721242
Merge branch 'main' into feature/llm-skills
Esity Apr 12, 2026
3338d30
apply copilot review suggestions (#130)
Esity Apr 12, 2026
113927a
apply copilot review suggestions (#130)
Esity Apr 12, 2026
0ad0239
fix: revert JSON.dump to JSON.generate in SSE events and siem_export …
Esity Apr 13, 2026
4f4d8ec
test: catch skill command exits in specs
Esity Apr 13, 2026
a377d5e
updating changelog
Esity Apr 13, 2026
6138697
bumping version to 1.8.0
Esity Apr 13, 2026
3ae6d51
Merge pull request #130 from LegionIO/feature/llm-skills
Esity Apr 13, 2026
b544772
fix: use /Actor$/ regex to prevent Runnerss double-s in actor class l…
Esity Apr 13, 2026
10f4146
fleet(settings): add Legion::Fleet::Settings with full 15.5 defaults
Esity Apr 13, 2026
f0a0894
fleet(runner): fix CheckSubtask task_id propagation and namespace case
Esity Apr 13, 2026
8901c5c
fix CI: use plain doubles for Task model in task_command_spec, bump v…
Esity Apr 14, 2026
d6d317b
fix rubocop: line length in context.rb, hash alignment in check_subta…
Esity Apr 14, 2026
1891687
Merge pull request #131 from LegionIO/fleet/ws-00c-fleet-settings
Esity Apr 14, 2026
0777ff4
fleet(actors): add RetryPolicy module with configurable threshold
Esity Apr 14, 2026
46882dd
fleet(actors): fix symbol-key test for extract_retry_count
Esity Apr 14, 2026
a1ec397
fleet(actors): wire reject_or_retry into subscription error handlers
Esity Apr 14, 2026
4e500b6
fleet(actors): add subscription retry integration spec
Esity Apr 14, 2026
6abe829
fleet(actors): fix hash syntax, bump version to 1.8.2, add changelog
Esity Apr 14, 2026
6dd4ea3
Merge pull request #134 from LegionIO/fleet/ws-05-retry-counting
Esity Apr 14, 2026
5dbc376
fix: runner_class resolution for actors nested under Actor:: namespace
Esity Apr 14, 2026
b7dc6a3
Merge pull request #136 from LegionIO/fix/actor-runner-class-resolution
Esity Apr 14, 2026
b2ecde6
fleet(cli): add fleet CLI commands, setup two-phase, and relationship…
Esity Apr 14, 2026
9342364
fleet(cli): bump version to 1.8.4, add changelog, fix rubocop offenses
Esity Apr 14, 2026
e11beef
Merge pull request #137 from LegionIO/fleet/ws-10-fleet-cli
Esity Apr 14, 2026
70ba74b
fleet(test): add end-to-end integration tests for fleet pipeline (WS-12)
Esity Apr 14, 2026
e18f851
Merge pull request #138 from LegionIO/fleet/ws-12-integration-test
Esity Apr 14, 2026
686bed1
auto-derive trigger words for extensions and runners when not defined
Esity Apr 15, 2026
219d457
fix tool schema quality: build real input_schema from method args and…
Esity Apr 15, 2026
2566bb3
fixing rubocop
Esity Apr 15, 2026
43c1f95
Merge pull request #141 from LegionIO/fix/tool-injection-trigger-word…
Esity Apr 15, 2026
8b22e92
add sticky_tools? to Extensions::Core — defaults true, extensions may…
Esity Apr 16, 2026
f309ba2
add sticky accessor to Tools::Base — defaults true, supports false op…
Esity Apr 16, 2026
6212680
propagate sticky_tools? through Tools::Discovery to tool class sticky…
Esity Apr 16, 2026
842f76a
bump version to 1.8.6, add changelog for sticky_tools? and Tools::Bas…
Esity Apr 16, 2026
d99c4ce
Merge branch 'main' into fix/tool-injection-trigger-words-and-schema
Esity Apr 16, 2026
ccb3da8
fix rubocop offenses in discovery_spec hash alignment
Esity Apr 16, 2026
2f3aad2
Merge pull request #142 from LegionIO/fix/tool-injection-trigger-word…
Esity Apr 16, 2026
4480a6b
fix CodeQL code scanning alerts, bump to 1.8.7
Esity Apr 17, 2026
426d446
fix remaining CodeQL alerts from PR #152 review, bump to 1.8.8
Esity Apr 17, 2026
218042d
fix digital-worker event emission and audit chain gap detection, bump…
Esity Apr 17, 2026
e99e4d3
fixing Polynomial regular expression
Esity Apr 17, 2026
0c05b9a
fix convert_links polynomial regex and suppress Thor test warnings, b…
Esity Apr 17, 2026
cf89684
update CODEOWNERS, add AGENTS.md, uplift README/CLAUDE.md, bump to 1.…
Esity Apr 17, 2026
7baa48e
remove docs/, config/tls/, and self_generate_spec.rb from git tracking
Esity Apr 17, 2026
39daebb
eliminate all polynomial regex from WebFetch HTML pipeline, bump to 1…
Esity Apr 17, 2026
a042413
fix last CodeQL alert: HTML comment regex polynomial backtracking
Esity Apr 17, 2026
8a0cf5b
fix absorber framework gaps: pattern DSL, handle alias, file matcher,…
Esity Apr 18, 2026
f334701
fix rubocop unused method argument in absorber base spec
Esity Apr 18, 2026
308d512
apply copilot review suggestions (#152)
Esity Apr 18, 2026
8f77805
add scope-aware Apollo routing to Absorbers::Base, bump to 1.8.13
Esity Apr 18, 2026
eb03121
Merge pull request #152 from LegionIO/fix/code-scanning-alerts
Esity Apr 18, 2026
8d7a2bd
bump
Esity Apr 19, 2026
7221555
fix: web_fetch delegates to WebFetch.fetch, add web_search dispatch, …
Esity Apr 20, 2026
5f4c536
broaden Gemfile.lock gitignore to all depths
Esity Apr 20, 2026
6d7ff2a
apply copilot review suggestions (#156)
Esity Apr 20, 2026
a6e714f
Merge pull request #156 from LegionIO/fix/issues-153-154-155
Esity Apr 20, 2026
7b07384
feat: add 'legion mind-growth wire' CLI command (S3)
Esity Apr 21, 2026
dd1d139
fix: add error logging to wire command, bump version
Esity Apr 21, 2026
b2373a1
fix(cli): stop sending dry_run kwarg on every knowledge ingest call
armstrongsamr Apr 22, 2026
a77aab5
fix(api): don't forward dry_run kwarg to Ingest.ingest_file
armstrongsamr Apr 22, 2026
d2da1c8
test(knowledge): add regression coverage and CHANGELOG entry
armstrongsamr Apr 22, 2026
f20dd24
chore(release): bump version to 1.8.15
armstrongsamr Apr 22, 2026
4733bc3
Merge pull request #164 from armstrongsamr/fix/knowledge-ingest-dry-r…
Esity Apr 22, 2026
9ac3315
Merge branch 'main' into feat/mind-growth-wire-cli
Esity Apr 22, 2026
e6b73ae
bump version to 1.8.16 to match CHANGELOG
Esity Apr 22, 2026
ebdd461
Merge pull request #161 from LegionIO/feat/mind-growth-wire-cli
Esity Apr 22, 2026
25252bc
fix: register detect subcommand at top level
Esity Apr 22, 2026
7d0e640
feat(identity): add Trust level enum with ranking and comparison
Esity Apr 24, 2026
9cc61f0
feat(identity): extend Process with trust, aliases, providers, profile
Esity Apr 24, 2026
02a5d14
feat(identity): add Grant value object for credential access audit
Esity Apr 24, 2026
80a329b
feat(identity): upgrade Broker to tuple-keyed multi-instance storage …
Esity Apr 24, 2026
35a973a
feat(identity): add Resolver with composite resolution chain
Esity Apr 24, 2026
38a0e77
feat(identity): wire Resolver into service.rb, fix reload, fix gates
Esity Apr 24, 2026
2dca125
chore(identity): remove legacy tree-walk identity discovery
Esity Apr 24, 2026
95e5056
fix(identity): normalize Request.from_auth_context to match DB constr…
Esity Apr 24, 2026
607554c
feat(api): update /api/identity/audit to read identity_audit_log table
Esity Apr 24, 2026
373beba
feat(identity): update Settings client name from resolved identity fo…
Esity Apr 24, 2026
48a32c1
fix(identity): middleware uses Resolver identity for system_principal
Esity Apr 24, 2026
b7aa763
chore: bump to 1.9.0, add changelog for unified identity system
Esity Apr 24, 2026
42118f6
style: fix rubocop empty line offense in service_spec
Esity Apr 24, 2026
ba2876f
apply copilot review suggestions (#166)
Esity Apr 24, 2026
df49a25
fix: initialize result variable to satisfy CodeQL uninitialized-local…
Esity Apr 24, 2026
f522214
Merge pull request #166 from LegionIO/feat/unified-identity
Esity Apr 24, 2026
a4e25b6
add extension runtime handles and hot reload guards
Esity Apr 25, 2026
afe7a03
address extension hot reload review feedback
Esity Apr 25, 2026
ff7e122
Merge pull request #167 from LegionIO/feature/extension-runtime-hot-r…
Esity Apr 25, 2026
0663696
fix(api): stop defaulting /api/knowledge/status path to Dir.pwd
sarmst22 Apr 24, 2026
fb6bf21
Merge pull request #174 from armstrongsamr/fix/api-knowledge-status-d…
Esity Apr 27, 2026
55c3a1c
Add LLM extension load phase
Esity Apr 27, 2026
a2bd753
Merge remote-tracking branch 'origin/main' into feat/llm-extension-lo…
Esity Apr 27, 2026
0728987
Bump Legion for LLM extension phase
Esity Apr 27, 2026
35846b9
Fix dashboard API regressions
Esity Apr 27, 2026
deaefce
Skip no-op extension catalog writes
Esity Apr 27, 2026
98b2f5f
Merge pull request #177 from LegionIO/codex/catalog-noop-startup-writes
Esity Apr 27, 2026
9652d9b
Wire local LLM provider extensions
Esity Apr 28, 2026
b9e4e34
Merge remote-tracking branch 'origin/main' into feat/llm-extension-lo…
Esity Apr 28, 2026
92e9a67
wire Legion-native LLM providers into setup
Esity Apr 28, 2026
5cdfb65
Harden LLM setup pack coverage
Esity Apr 28, 2026
121cab5
Fix local lex-llm-gateway path
Esity Apr 28, 2026
7d966d9
Stop installing legacy LLM gateway by default
Esity Apr 28, 2026
8d6ce43
Load logging before extension helpers
Esity Apr 28, 2026
ace9840
Wire local LLM ledger development path
Esity Apr 28, 2026
b4102ed
Fix LLM uplift integration wiring
Esity Apr 28, 2026
639ef5c
Fix LLM provider discovery integration
Esity Apr 28, 2026
2149c92
Use native LLM providers in default profiles
Esity Apr 28, 2026
4ead84a
Refresh LLM profile documentation
Esity Apr 28, 2026
937866d
Allow nested lex extension names
Esity Apr 28, 2026
6d60841
Refresh README release version for PR 175
Esity Apr 28, 2026
137746f
Use native LLM provider inventory in LegionIO
Esity Apr 28, 2026
ae95dbb
Prefer native LLM chat routing
Esity Apr 28, 2026
cac9d15
Require validated legion-llm release
Esity Apr 28, 2026
0ad4e69
fix: require optional-rubyllm llm uplift
Esity Apr 28, 2026
643e087
fix: require llm-native tty probe
Esity Apr 28, 2026
3a4867f
Mark lex-llm-gateway legacy in catalog
Esity Apr 28, 2026
77a7501
Require LLM identity migration release (#89)
Esity Apr 29, 2026
a8ebb5f
Fix local LLM dependency resolution
Esity Apr 29, 2026
3354342
address PR review comments (#175)
Esity Apr 29, 2026
c52f49c
Remove RubyLLM API tool fallback
Esity Apr 29, 2026
5b968bd
preload_llm_providers: discover lex-llm-* via Bundler, providers self…
Esity May 1, 2026
8da2d1c
Merge pull request #175 from LegionIO/feat/llm-extension-load-phase
Esity May 5, 2026
ffa3654
v1.9.19: dead-letter unrecoverable messages, propagate AMQP correlati…
Esity May 5, 2026
6aea9d9
Guard rescue blocks against uninitialized delivery_info in subscribe
Esity May 5, 2026
2e9a55b
Merge branch 'main' into feat/llm-extension-load-phase
Esity May 5, 2026
03c0465
Fix nested extension settings paths
Esity May 6, 2026
71af729
Finalize LLM route host cleanup
Esity May 6, 2026
751a45c
Refresh LLM providers on extension reload
Esity May 6, 2026
96aa5c8
Fix encrypted subscription IV handling
Esity May 7, 2026
26edb4c
Merge pull request #181 from LegionIO/feat/llm-extension-load-phase
Esity May 7, 2026
3206387
Remove deprecated direct AI provider extensions from catalog
Esity May 7, 2026
84dd4a9
Bump version to 1.9.24
Esity May 7, 2026
4c698f6
Update identity model references to portable namespace
Esity May 7, 2026
56e2c12
Bump version to 1.9.25
Esity May 7, 2026
8460c3b
Add live daemon integration test suite
Esity May 7, 2026
3e74ec1
Use process identity for loopback principals
Esity May 8, 2026
27138ff
Exclude live daemon specs from default RSpec
Esity May 8, 2026
db9ae7e
Preserve omitted LLM tools for registry injection
Esity May 8, 2026
f213d55
fix idle task observation churn
Esity May 8, 2026
94de84e
Slim CLAUDE.md: reduce from verbose API docs to concise project refer…
Esity May 8, 2026
deab9d8
Merge pull request #186 from LegionIO/fix/deprecate-legacy-ai-providers
Esity May 8, 2026
0d0f717
Bump to 1.9.29: subscription channel recovery, DLX guard, identity re…
Esity May 11, 2026
9006acc
Revert DLX exchange type back to fanout
Esity May 11, 2026
c94ab30
Add setup gaia and setup identity packs, update setup llm
Esity May 11, 2026
251f22d
Address PR review: init guards, spec matchers, tier validation, emit_…
Esity May 11, 2026
aaa4a7e
Merge pull request #187 from LegionIO/fix/subscription-recovery-and-d…
Esity May 11, 2026
fdb3319
Remove lex-llm-ledger from agentic setup pack
Esity May 13, 2026
0c4ef29
Restructure setup packs: slim agentic, add developer pack
Esity May 13, 2026
0e4f347
Merge pull request #188 from LegionIO/fix/remove-ledger-from-agentic-…
Esity May 13, 2026
10ec893
feat: GET /api/identity endpoint and recursive submodule autobuild
Esity May 14, 2026
f9fcd8c
Merge branch 'main' into feat/identity-api-and-submodule-autobuild
Esity May 14, 2026
5413e6c
cleaning up gemfile
Esity May 14, 2026
14d1b62
fix: update stale specs for current Gemfile and API middleware shape
Esity May 14, 2026
82d4cee
feat: add lex-identity-entra to identity setup pack
Esity May 14, 2026
4ce5aae
Merge pull request #189 from LegionIO/feat/identity-api-and-submodule…
Esity May 14, 2026
8e7e3f9
Strip RubyLLM from CLI chat tools, migrate to Legion::Tools::Base
Esity May 14, 2026
74032e6
feat(identity): Process stores and exposes db_principal_id and db_ide…
Esity May 15, 2026
db8dbef
chore: bump to v1.9.33, update CHANGELOG, fix Gemfile blank line
Esity May 15, 2026
204091e
revert: restore Gemfile to pre-rubocop-autofix state
Esity May 15, 2026
1b16435
Merge pull request #191 from LegionIO/fix/strip-ruby-llm-cli-tools
Esity May 15, 2026
78697db
Fix tool discovery, extension naming, and add /api/extensions/tools
Esity May 19, 2026
7408e80
Bump version to 1.9.34 and update CHANGELOG
Esity May 19, 2026
e6f0357
Refactor register_tools_route to pass rubocop complexity check
Esity May 19, 2026
dfdf9fb
Pass access_scope through absorber chunk payloads
Esity May 19, 2026
f5f274f
Merge pull request #192 from LegionIO/fix/tool-discovery-and-extensio…
Esity May 19, 2026
5a25d5a
fix(cli): add `legionio service` command for macOS 26+ launchd compat…
Esity May 22, 2026
761bf91
Merge branch 'main' into fix/launchd-service-macos26
Esity May 22, 2026
ad86f04
Bump version to 1.9.35 and update CHANGELOG
Esity May 22, 2026
1db35e1
Fix run_brew_service to return false early on brew failure
Esity May 22, 2026
24493fb
Forward logging AMQP headers
Esity May 22, 2026
0bd2dba
Resolve identity before LLM setup
Esity May 22, 2026
97efa56
Load local LLM gems for service boot
Esity May 23, 2026
55850fa
Merge pull request #193 from LegionIO/fix/launchd-service-macos26
Esity May 24, 2026
2a0c5ba
perf(local): add missing indexes to tbi_patterns and tool_embedding_c…
Esity May 28, 2026
537d96e
feat(llm): enable namespace API by default in LegionIO settings
Esity May 29, 2026
3a3946d
feat(cli): add 'legion setup proxy-mode' for Codex CLI and Claude Code
Esity May 29, 2026
2d69bd8
fix(llm): use loader.settings to override use_namespaces flag
Esity May 29, 2026
ef922b2
chore(changelog): document namespace API enable and proxy-mode CLI in…
Esity May 29, 2026
4c639e6
Merge remote-tracking branch 'origin/main' into feature/api-namespaces
Esity May 29, 2026
f280a4f
fix(specs): resolve test isolation failures from legion-llm namespace…
Esity May 29, 2026
6677efc
fix: enable use_namespaces in setup_llm, remove tool_trigger override
Esity May 29, 2026
c145125
style: fix rubocop line length and hash alignment offenses
Esity May 29, 2026
0336b8a
chore(changelog): document LLM streaming and message translation fixes
Esity May 30, 2026
31e3a44
Uncomment lex-llm-ledger and lex-lex gems
Esity May 30, 2026
dc1c5d0
chore: remove accidentally committed numeric temp files, rubocop autofix
Esity May 30, 2026
73614ef
release: v1.9.37 — namespace API + streaming/translation fixes
Esity May 30, 2026
ca90347
Merge pull request #200 from LegionIO/feature/api-namespaces
Esity May 30, 2026
33b87fd
fix: require legion-llm >= 0.10.1, bump v1.9.38
Esity May 30, 2026
49dd769
Merge pull request #201 from LegionIO/fix/legion-llm-minimum-version
Esity May 30, 2026
3f27bbe
fix: remove --clear-sources from gem install (breaks pack reinstall)
Esity May 30, 2026
6212372
Merge branch 'main' into fix/legion-llm-minimum-version
Esity May 30, 2026
78d80c8
fix: bump v1.9.39, update CHANGELOG and specs for --clear-sources rem…
Esity May 30, 2026
c6c3721
Merge pull request #202 from LegionIO/fix/legion-llm-minimum-version
Esity May 31, 2026
6fe2a74
feat: add ledger replay and rollback migration scripts
Esity Jun 1, 2026
d0bd16a
Auto-fix rubocop offenses with rubocop -A
Esity Jun 1, 2026
54ab059
Auto-fix rubocop offenses in replay_ledger
Esity Jun 1, 2026
5406772
Fix redundant rubocop disable directive
Esity Jun 1, 2026
bfad46b
fix: broaden trace_search rescue to StandardError, bump v1.9.40
Esity Jun 2, 2026
b2f7579
Merge remote-tracking branch 'origin/main' into fix/legion-llm-minimu…
Esity Jun 2, 2026
f111253
feat: proxy-mode writes legionio profile + catalog instead of overwri…
Esity Jun 2, 2026
6cd3073
fix: proxy-mode always activates legionio profile in config.toml
Esity Jun 2, 2026
af57bad
feat: proxy-mode writes ~/.zsh_legionio with claude-legionio and code…
Esity Jun 2, 2026
9fa4361
fix: print source command after writing zsh_legionio since subprocess…
Esity Jun 2, 2026
2596d54
fix: skip ~/.claude/settings.json write in proxy-mode — too destructi…
Esity Jun 2, 2026
0b89a1b
feat: track python and proxy-mode in packs, warn on missing llm prereq
Esity Jun 2, 2026
8f55bbd
feat: add CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1 to claude-legi…
Esity Jun 2, 2026
570b840
fix: unset ANTHROPIC_DEFAULT_*_MODEL in claude-legionio instead of se…
Esity Jun 2, 2026
a3f0e4f
fix: stub Legion::Settings.dig with permissive default in consolidato…
Esity Jun 2, 2026
4c9e828
fix: remove dead settings stub in routes_spec, fix use_namespaces pat…
Esity Jun 2, 2026
61fd8e4
fix: add permissive Legion::Settings.dig stub in routes_spec to handl…
Esity Jun 2, 2026
bea6fc9
Merge pull request #203 from LegionIO/fix/legion-llm-minimum-version
Esity Jun 3, 2026
a14211a
fix: Codex proxy-mode config for Mac app compatibility
Esity Jun 3, 2026
90f03fd
Merge branch 'main' of https://github.com/LegionIO/LegionIO into fix/…
Esity Jun 3, 2026
3c65358
chore: bump version to 1.9.41 and update CHANGELOG
Esity Jun 3, 2026
8ee37c4
fixing cop errors
Esity Jun 3, 2026
e8da1d3
Merge pull request #210 from LegionIO/fix/legion-llm-minimum-version
Esity Jun 3, 2026
9436b42
fix: broaden pack marker rescue to StandardError for sandbox compatib…
Esity Jun 3, 2026
fdaf12c
Merge branch 'main' into fix/legion-llm-minimum-version
Esity Jun 8, 2026
9ca9532
perf: batch extension registration into single LexRegister publish
Esity Jun 8, 2026
39ea8dd
test: update spec for removed flush_pending_registrations! from setup…
Esity Jun 8, 2026
556dde1
fixing lots of rubocops
Esity Jun 8, 2026
1c9703f
codeql
Esity Jun 8, 2026
5ba3e43
fix: swap rescue order to fix ShadowedException cop and fix CodeQL po…
Esity Jun 8, 2026
2af65cc
updating rubocop.yml
Esity Jun 17, 2026
91de697
removing bootsnap
Esity Jun 17, 2026
f3f2f0f
Migrate off the in-app LLM API; drop dev-only Rack::Unreloader
Esity Jun 17, 2026
3daf769
docs: shiny README hero + ecosystem, lean CLAUDE/AGENTS, fix stale bo…
Esity Jun 17, 2026
0bafe70
Merge pull request #211 from LegionIO/fix/legion-llm-minimum-version
Esity Jun 17, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
11 changes: 11 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
.git
.github
spec
docs
*.md
.rubocop.yml
.rspec
tmp
log
.dockerignore
Dockerfile
12 changes: 12 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Auto-generated from team-config.yml
# Team: core
#
# To apply: scripts/apply-codeowners.sh LegionIO

* @LegionIO/maintainers @LegionIO/core

# Path-specific reviewers
lib/legion/cli/chat/ @LegionIO/ai
lib/legion/api/ @LegionIO/core
lib/legion/extensions/ @LegionIO/extensions
.github/ @LegionIO/infra
18 changes: 18 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
version: 2
updates:
- package-ecosystem: bundler
directory: /
schedule:
interval: weekly
day: monday
open-pull-requests-limit: 5
labels:
- "type:dependencies"
- package-ecosystem: github-actions
directory: /
schedule:
interval: weekly
day: monday
open-pull-requests-limit: 5
labels:
- "type:dependencies"
118 changes: 118 additions & 0 deletions .github/workflow-templates/eval-gate.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
# .github/workflow-templates/eval-gate.yml
#
# Eval gate workflow template for LegionIO CI/CD pipelines.
# Copy this file to .github/workflows/eval-gate.yml in your repo and adjust the
# env vars to match your dataset and threshold requirements.
#
# Required secrets:
# LEGIONIO_BOOTSTRAP_CONFIG (base64-encoded bootstrap JSON, or omit for defaults)
#
# Usage:
# - Trigger manually (workflow_dispatch) or on push/PR targeting main
# - Job exits 0 if avg_score >= threshold, exits 1 and fails the pipeline if below

name: Eval Gate

on:
push:
branches: [main]
pull_request:
branches: [main]
workflow_dispatch:
inputs:
dataset:
description: 'Dataset name to evaluate'
required: true
default: 'default'
threshold:
description: 'Pass/fail threshold (0.0 - 1.0)'
required: false
default: '0.8'
evaluator:
description: 'Evaluator name (leave blank for first builtin template)'
required: false
default: ''

env:
DATASET: ${{ github.event.inputs.dataset || 'default' }}
THRESHOLD: ${{ github.event.inputs.threshold || '0.8' }}
EVALUATOR: ${{ github.event.inputs.evaluator || '' }}

jobs:
eval-gate:
name: Eval Gate (${{ env.DATASET }} @ ${{ env.THRESHOLD }})
runs-on: ubuntu-latest

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: '3.4'
bundler-cache: true

- name: Install Legion
run: gem install legionio --no-document

- name: Bootstrap config (optional)
if: ${{ secrets.LEGIONIO_BOOTSTRAP_CONFIG != '' }}
env:
LEGIONIO_BOOTSTRAP_CONFIG: ${{ secrets.LEGIONIO_BOOTSTRAP_CONFIG }}
run: echo "Bootstrap config present"

- name: Run eval gate
id: eval
env:
LEGIONIO_BOOTSTRAP_CONFIG: ${{ secrets.LEGIONIO_BOOTSTRAP_CONFIG }}
run: |
EVAL_ARGS="--dataset $DATASET --threshold $THRESHOLD --exit-code --json"
if [ -n "$EVALUATOR" ]; then
EVAL_ARGS="$EVAL_ARGS --evaluator $EVALUATOR"
fi
legion eval run $EVAL_ARGS | tee eval-report.json

- name: Upload eval report
if: always()
uses: actions/upload-artifact@v4
with:
name: eval-report-${{ github.run_number }}
path: eval-report.json
retention-days: 30

- name: Annotate PR with eval results
if: github.event_name == 'pull_request' && always()
uses: actions/github-script@v7
with:
script: |
const fs = require('fs');
let report;
try {
report = JSON.parse(fs.readFileSync('eval-report.json', 'utf8'));
} catch (e) {
console.log('Could not parse eval report:', e.message);
return;
}
const gate = report.passed ? 'PASSED' : 'FAILED';
const score = (report.avg_score || 0).toFixed(3);
const thresh = report.threshold || 0;
const body = [
`## Eval Gate: ${gate}`,
'',
`| Metric | Value |`,
`|--------|-------|`,
`| Dataset | \`${report.dataset}\` |`,
`| Evaluator | \`${report.evaluator}\` |`,
`| Avg Score | ${score} |`,
`| Threshold | ${thresh} |`,
`| Total Rows | ${report.summary?.total ?? 'N/A'} |`,
`| Passed | ${report.summary?.passed ?? 'N/A'} |`,
`| Failed | ${report.summary?.failed ?? 'N/A'} |`,
].join('\n');
github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: body,
});
13 changes: 13 additions & 0 deletions .github/workflows/ci-cd.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
name: CI/CD
on:
pull_request:
branches: [main]

jobs:
helm-lint:
name: Helm Lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: azure/setup-helm@v3
- run: helm lint deploy/helm/legion
76 changes: 76 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
name: CI
on:
push:
branches: [main]
pull_request:
schedule:
- cron: '0 9 * * 1'

jobs:
ci:
uses: LegionIO/.github/.github/workflows/ci.yml@main
with:
needs-rabbitmq: true

security:
uses: LegionIO/.github/.github/workflows/security-scan.yml@main
with:
brakeman-enabled: false

version-changelog:
uses: LegionIO/.github/.github/workflows/version-changelog.yml@main

dependency-review:
uses: LegionIO/.github/.github/workflows/dependency-review.yml@main

stale:
if: github.event_name == 'schedule'
uses: LegionIO/.github/.github/workflows/stale.yml@main

release:
needs: [ci]
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
uses: LegionIO/.github/.github/workflows/release.yml@main
secrets:
rubygems-api-key: ${{ secrets.RUBYGEMS_API_KEY }}

trigger-homebrew:
needs: release
if: needs.release.outputs.released == 'true'
runs-on: ubuntu-latest
steps:
- name: Trigger unified Homebrew build
env:
GH_TOKEN: ${{ secrets.HOMEBREW_DISPATCH_TOKEN }}
LEGIONIO_VERSION: ${{ needs.release.outputs.version }}
run: |
gh api repos/LegionIO/homebrew-tap/dispatches \
-f event_type=build-legion \
-f "client_payload[legionio_version]=$LEGIONIO_VERSION" \
-f "client_payload[ruby_version]=3.4.8" \
-f "client_payload[package_revision]=1"

docker-build:
name: Build Docker Image
needs: release
if: needs.release.outputs.released == 'true'
runs-on: ubuntu-latest
permissions:
packages: write
steps:
- uses: actions/checkout@v4
- uses: docker/setup-buildx-action@v3
- uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- uses: docker/build-push-action@v5
with:
context: .
push: true
tags: |
ghcr.io/legionio/legion:${{ needs.release.outputs.version }}
ghcr.io/legionio/legion:latest
cache-from: type=gha
cache-to: type=gha,mode=max
31 changes: 31 additions & 0 deletions .github/workflows/publish-homebrew.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
name: Publish to Homebrew

on:
release:
types: [published]

jobs:
trigger-homebrew:
runs-on: ubuntu-latest
if: startsWith(github.event.release.tag_name, 'v')
steps:
- name: Extract version from tag
id: version
run: |
TAG="${RELEASE_TAG}"
VERSION="${TAG#v}"
echo "version=$VERSION" >> "$GITHUB_OUTPUT"
echo "Extracted version: $VERSION"
env:
RELEASE_TAG: ${{ github.event.release.tag_name }}

- name: Trigger build-legion on homebrew-tap
run: |
gh api repos/LegionIO/homebrew-tap/dispatches \
-f event_type=build-legion \
-f "client_payload[legionio_version]=${LEGIONIO_VERSION}" \
-f "client_payload[ruby_version]=3.4.8" \
-f "client_payload[package_revision]=1"
env:
GH_TOKEN: ${{ secrets.HOMEBREW_DISPATCH_TOKEN }}
LEGIONIO_VERSION: ${{ steps.version.outputs.version }}
45 changes: 0 additions & 45 deletions .github/workflows/rspec.yml

This file was deleted.

28 changes: 0 additions & 28 deletions .github/workflows/rubocop.yml

This file was deleted.

20 changes: 0 additions & 20 deletions .github/workflows/sourcehawk-scan.yml

This file was deleted.

Loading
Loading