Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
723 commits
Select commit Hold shift + click to select a range
9430a82
enrich generate_insights with graph topology, scheduling, and llm sub…
Esity Mar 23, 2026
c75509d
add context manager with multi-strategy compact and /context command …
Esity Mar 23, 2026
edc850c
add memory_status chat tool for persistent memory and knowledge overv…
Esity Mar 23, 2026
0e131fa
fix ci: guard local path gems with File.exist? checks in Gemfile
Esity Mar 23, 2026
bdce995
update CLAUDE.md: version 1.4.184, 40 chat tools, 3194 specs, context…
Esity Mar 23, 2026
2a85deb
update ci.yml to use renamed release output: changed -> released
Esity Mar 23, 2026
2d1749b
restrict settings search paths to canonical directories (#25)
Esity Mar 23, 2026
3ce2254
updating github workflows
Esity Mar 23, 2026
4d33066
re-trigger ci
Esity Mar 23, 2026
cbd9aac
disable brakeman (rails-only, not applicable to sinatra)
Esity Mar 23, 2026
7563711
Merge pull request #27 from LegionIO/bug/issue-25
Esity Mar 23, 2026
2ea91f3
apply copilot review followup fixes (#25)
Esity Mar 23, 2026
d3f3a96
apply copilot review suggestions (#25)
Esity Mar 23, 2026
9e5348e
strip whitespace from config_dir before expansion (#25)
Esity Mar 23, 2026
197fa93
Merge pull request #28 from LegionIO/bug/issue-25-followup
Esity Mar 24, 2026
a247301
add Capability struct for extension capability registration
Esity Mar 24, 2026
b5f4881
add Catalog::Registry for in-memory capability tracking
Esity Mar 24, 2026
8e6d303
populate Catalog::Registry from extension runners at boot
Esity Mar 24, 2026
f5fbbff
remove capabilities from Catalog on extension unload
Esity Mar 24, 2026
95f163c
add find_by_mcp_name to Catalog::Registry
Esity Mar 24, 2026
8239673
bump to 1.4.187, Capability struct + Catalog::Registry
Esity Mar 24, 2026
350c8c0
bump legion-mcp to >= 0.5.1 and legion-data to >= 1.4.19, version 1.4…
Esity Mar 24, 2026
46a7d4a
restore homebrew trigger and docker build jobs in CI pipeline
Esity Mar 24, 2026
d2d2dcb
add caller: identity to LLM calls in api, cli, extensions, and intern…
Esity Mar 24, 2026
f902f51
migrate guardrails to pipeline with system caller identity
Esity Mar 24, 2026
6d79e67
add caller: identity to CLI chat streaming path
Esity Mar 24, 2026
2609965
fix Settings.key? crash in extension loader for llm_required? check
Esity Mar 24, 2026
64011de
add publish-homebrew workflow to trigger build-legion on release
Esity Mar 24, 2026
f576527
use existing HOMEBREW_DISPATCH_TOKEN secret
Esity Mar 24, 2026
a4279f0
add mind-growth CLI commands for cognitive architecture management
Esity Mar 24, 2026
28b80e2
feat: add --lite flag and lite mode boot integration
Esity Mar 24, 2026
87da505
feat: add `legion do` natural language intent router
Esity Mar 24, 2026
4caedeb
add LLM fallback to legion do command for intent classification
Esity Mar 24, 2026
2049386
add debug logging to swallowed rescue blocks
Esity Mar 24, 2026
f31871b
add debug logging to 8 swallowed rescue blocks in chat tools
Esity Mar 24, 2026
9e9ec64
fix 33 failing mind_growth_command specs
Esity Mar 24, 2026
a7cfeb8
reindex docs: update to v1.4.197, add lite mode, legion do, mind-grow…
Esity Mar 24, 2026
e89f3b3
bump gemspec minimums for legion-transport and legion-tty (v1.4.198)
Esity Mar 24, 2026
b80d11f
add legion setup agentic/llm/channels pack installer (v1.4.199)
Esity Mar 24, 2026
3748d91
legionio 1.5.0: check overhaul, version --full, tagged logging, legio…
Esity Mar 24, 2026
7648d59
fix runner.run status assignment ordering for exception handling
Esity Mar 24, 2026
0a52cea
wire lex-extinction into digital worker lifecycle transitions
Esity Mar 24, 2026
0a4ee8a
fix check_cache_local display to read from Legion::Settings[:cache_lo…
Esity Mar 24, 2026
b3bd484
verify extinction escalation calls in lifecycle integration tests
Esity Mar 24, 2026
4141aa7
add ownership transfer integration tests with event and audit verific…
Esity Mar 24, 2026
2980515
add retirement cycle tests with credential revocation and audit chain
Esity Mar 24, 2026
03b6118
add de-escalation on worker resume — lifecycle calls deescalate when …
Esity Mar 24, 2026
39b7176
bump LegionIO 1.5.3 — lifecycle integration tests, de-escalation, cre…
Esity Mar 24, 2026
0ce79e2
upgrade Actors::Singleton to dual-backend Cluster::Lock with singleto…
Esity Mar 24, 2026
31e3e8e
wire Cluster::Leader into Service boot behind cluster.leader_election…
Esity Mar 24, 2026
563a12e
bump LegionIO 1.5.4 — horizontal scaling: feature-flagged leader elec…
Esity Mar 24, 2026
25dc298
add .worktrees to gitignore
Esity Mar 24, 2026
1991555
fix readiness: add llm/rbac to COMPONENTS, gate mark_ready on success
Esity Mar 24, 2026
00a2a90
gate mark_ready on success for llm/gaia; add graceful degradation for…
Esity Mar 24, 2026
8967cb0
add Legion::Compliance::PhiTag for PHI data classification
Esity Mar 24, 2026
37e8101
add Audit::Archiver for tiered hot/warm/cold retention
Esity Mar 24, 2026
81979eb
add Audit::ColdStorage with local and s3 backends
Esity Mar 24, 2026
5df59fe
wire CertRotation into service boot/shutdown behind mtls feature flag
Esity Mar 24, 2026
6f5ca12
wire build session lifecycle into extension parallel load
Esity Mar 24, 2026
ec7a1d1
two-phase subscription activation with shared pool
Esity Mar 24, 2026
fdacd86
add Legion::Compliance::PhiAccessLog for PHI access audit trail
Esity Mar 24, 2026
feb028b
bump version to 1.5.5, update CHANGELOG
Esity Mar 24, 2026
031f61d
add audit archive/verify_chain/restore CLI subcommands
Esity Mar 24, 2026
c60aab6
add Audit::ArchiverActor with weekly schedule guard
Esity Mar 24, 2026
78a081c
add api TLS (Puma ssl_bind), doctor TLS check, config templates # pip…
Esity Mar 24, 2026
1a8fcee
wire logging hooks to dedicated transport channel, fix reload path
Esity Mar 24, 2026
2be1f0b
bump LegionIO 1.5.6 — boot process overhaul
Esity Mar 24, 2026
42c3f2a
merge feature/mtls-internal-comms into main
Esity Mar 25, 2026
d10e0e8
bump version to 1.5.7 for tiered audit retention
Esity Mar 25, 2026
6d0af79
add Legion::Compliance::PhiErasure for cryptographic erasure orchestr…
Esity Mar 25, 2026
7e5815f
bump version to 1.5.8, update CHANGELOG for PHI compliance module
Esity Mar 25, 2026
0f405c2
bump version to 1.5.9, subscription activate nil-guard, shutdown drai…
Esity Mar 25, 2026
6cbf8b0
add missing features_command.rb to tracked files
Esity Mar 25, 2026
074459b
bump legion-crypt dependency to >= 1.4.12 for ruby 4.0 compat
Esity Mar 25, 2026
4d1001d
guard bootsnap behind LEGION_BOOTSNAP env var, default disabled (clos…
Esity Mar 25, 2026
15ff9ce
add debug command, update --cleanup, fix version detection, guard dou…
Esity Mar 25, 2026
3ba98e9
debug command writes dump to ~/.legionio/debug/ with timestamp filename
Esity Mar 25, 2026
0a1f97a
add GET /api/stats endpoint for comprehensive daemon runtime stats
Esity Mar 25, 2026
0ccd94d
apply copilot review suggestions (#29)
Esity Mar 25, 2026
d834662
Merge pull request #29 from LegionIO/feature/api-stats-endpoint
Esity Mar 25, 2026
488694a
fix api startup blocking on port conflict (v1.5.13)
Esity Mar 25, 2026
cdee215
add network-loss auto-reload and timeout-guarded shutdown (#30)
Esity Mar 25, 2026
a735ba0
apply review feedback: logging levels, error format, configurable tim…
Esity Mar 25, 2026
0353674
apply copilot review suggestions (#30)
Esity Mar 25, 2026
61e42dc
Merge pull request #31 from LegionIO/bug/issue-30
Esity Mar 25, 2026
65fd0f1
add apollo writeback prototype and query status filter
Esity Mar 25, 2026
c25bb23
remove cli chat writeback prototype, replaced by pipeline step 19 (#32)
Esity Mar 25, 2026
76c40ac
forward all kwargs in llm_embed helper
Esity Mar 25, 2026
a739149
add setup_apollo to service boot sequence
Esity Mar 25, 2026
6fd5544
add Helpers::Knowledge universal ingest/query helper
Esity Mar 25, 2026
6372dbb
bump version to 1.5.17
Esity Mar 25, 2026
044971f
Merge pull request #33 from LegionIO/feature/apollo-knowledge-integra…
Esity Mar 25, 2026
0d6f927
add knowledge helper end-to-end integration spec
Esity Mar 26, 2026
73209ae
Merge pull request #34 from LegionIO/feature/knowledge-integration-test
Esity Mar 26, 2026
826b8b9
add scope parameter to Helpers::Knowledge for local/global routing
Esity Mar 26, 2026
4812e12
start Apollo::Local during setup_apollo boot phase
Esity Mar 26, 2026
b47aa1f
bump version to 1.5.18
Esity Mar 26, 2026
da8dc6e
Merge branch 'main' into feature/local-knowledge-scope
Esity Mar 26, 2026
30db917
fix integration spec: use scope: :global for Apollo.query pass-throug…
Esity Mar 26, 2026
793c342
Merge pull request #35 from LegionIO/feature/local-knowledge-scope
Esity Mar 26, 2026
626486b
add legion knowledge CLI subcommand (#37)
Esity Mar 26, 2026
64d6b30
add knowledge health, maintain, quality CLI subcommands
Esity Mar 26, 2026
3fe2049
bump legionio to 1.5.20
Esity Mar 26, 2026
663e99e
expand setup agentic to install full cognitive stack (63 gems)
Esity Mar 26, 2026
1b91984
consolidate CLI into 7 command groups, reduce root from 48 to 26
Esity Mar 26, 2026
e3f5a30
fix coldstart ingest to use lex-agentic-memory instead of lex-memory
Esity Mar 26, 2026
a2b03dc
fix coldstart CLI log method missing on bare runner objects
Esity Mar 26, 2026
563b8c5
remove remaining lex-memory references, use lex-agentic-memory everyw…
Esity Mar 26, 2026
32d1b65
add knowledge monitor and capture CLI subcommands
Esity Mar 26, 2026
94dcedf
install write-back hooks in legion setup claude-code
Esity Mar 26, 2026
5dc3c95
bump LegionIO to 1.6.0: knowledge monitor CLI + write-back hooks
Esity Mar 26, 2026
95753ba
fix update command silent failures and misleading status display
Esity Mar 26, 2026
5b56276
bump legion-apollo and legion-gaia gemspec floor pins
Esity Mar 26, 2026
d523fb5
add function metadata DSL for MCP tool exposure
Esity Mar 26, 2026
80a5683
add *.db and *.json to gitignore
Esity Mar 26, 2026
2c7ca14
remove 8 completed plan documents
Esity Mar 26, 2026
57e364f
fix update command TCP connection exhaustion with batched keep-alive
Esity Mar 26, 2026
4c9bb26
replace custom HTTP client with gem outdated for update checks
Esity Mar 26, 2026
c008693
add legion codegen CLI subcommand
Esity Mar 26, 2026
f443282
add codegen API routes for generated function management
Esity Mar 26, 2026
eaef7fc
add boot loading for generated functions
Esity Mar 26, 2026
2a1ee46
add end-to-end integration test for self-generating functions
Esity Mar 26, 2026
bb16fef
prepare legionio 1.6.1 for release
Esity Mar 26, 2026
263b686
fix consumer tag collision causing boot connection kill
Esity Mar 26, 2026
3194741
apply copilot review suggestions (#38)
Esity Mar 26, 2026
99075bb
apply copilot review suggestions (#38)
Esity Mar 26, 2026
4c07cc6
Merge pull request #38 from LegionIO/feature/tbi-phase5-self-generati…
Esity Mar 26, 2026
7825df9
add bootstrap command and self-awareness prompt enrichment
Esity Mar 26, 2026
9510604
apply copilot review suggestions (#39)
Esity Mar 26, 2026
489037a
apply copilot review suggestions (#39)
Esity Mar 26, 2026
c5ef167
Merge pull request #39 from LegionIO/feature/executive-demo-prep
Esity Mar 26, 2026
6515a67
add specs for codegen CLI, API, and boot loading (tasks 15-17)
Esity Mar 26, 2026
49f2b50
Merge pull request #40 from LegionIO/feature/executive-demo-prep
Esity Mar 26, 2026
953460d
add end-to-end integration test for self-generating functions loop
Esity Mar 26, 2026
9ea0d93
add self-generate integration test and update changelog
Esity Mar 26, 2026
7a99fab
move lex-codegen and lex-eval to test group in Gemfile
Esity Mar 26, 2026
37a0899
use standard gem refs for lex-codegen and lex-eval in test group
Esity Mar 26, 2026
39c97ab
apply copilot review suggestions (#41)
Esity Mar 26, 2026
0849949
apply copilot re-review suggestions (#41)
Esity Mar 26, 2026
a9cc4c2
Merge pull request #41 from LegionIO/feature/tbi-phase5-integration-test
Esity Mar 26, 2026
37a624c
add Helpers::Secret mixin and SecretAccessor for per-user vault secrets
Esity Mar 26, 2026
0414395
wire Helpers::Secret into Helpers::Lex include chain
Esity Mar 26, 2026
b9b6ec3
bump to 1.6.9, update changelog
Esity Mar 26, 2026
48b21fa
split bootstrap config into per-subsystem files (#42)
Esity Mar 27, 2026
980274f
add Legion::Dispatch module with Local strategy
Esity Mar 27, 2026
c0ea704
wire local_tasks to Legion::Dispatch in hook_all_actors
Esity Mar 27, 2026
0ed0fd2
add Ingress local short-circuit for non-remote runners
Esity Mar 27, 2026
329bdab
add setup_dispatch to service boot sequence
Esity Mar 27, 2026
ddd19a2
add legion broker stats and cleanup CLI commands
Esity Mar 27, 2026
05cd262
bump to 1.6.11, rubocop fixes, update changelog for local dispatch
Esity Mar 27, 2026
cf47b19
Merge pull request #43 from LegionIO/feature/local-dispatch
Esity Mar 27, 2026
54a2b34
stupid robots
Esity Mar 27, 2026
5eb0163
Merge branch 'feature/local-dispatch' of https://github.com/LegionIO/…
Esity Mar 27, 2026
586faea
wire remaining digital worker gaps: heartbeat, orphan detection, cons…
Esity Mar 27, 2026
fc38931
add max-classification compliance profile with settings registration …
Esity Mar 27, 2026
2bddb4b
add absorbers — pattern-matched content acquisition for LEX extension…
Esity Mar 27, 2026
3334b94
add absorbers — pattern-matched content acquisition for LEX extension…
Esity Mar 27, 2026
41b734f
reconfigure_logging applies all settings (format, async, include_pid)
Esity Mar 27, 2026
196dec5
rewrite handle_exception to use log_exception with full lex context
Esity Mar 27, 2026
70861f1
replace register_logging_hooks with writer lambda wiring on dedicated…
Esity Mar 27, 2026
bb4a2f6
replace split error/backtrace logging with log_exception across core
Esity Mar 27, 2026
5a49b16
Merge branch 'main' into feature/structured-exception-logging
Esity Mar 27, 2026
40eb4de
update changelog and readme for structured exception logging (#47)
Esity Mar 27, 2026
0c9423f
apply copilot review suggestions (#47)
Esity Mar 27, 2026
b239247
bump version to 1.6.20, require legion-logging >= 1.4.0 (#47)
Esity Mar 27, 2026
7fb28e7
apply copilot review suggestions round 2 (#47)
Esity Mar 27, 2026
86d1edc
Merge pull request #47 from LegionIO/feature/structured-exception-log…
Esity Mar 27, 2026
cb6aa41
add transcript capture command for claude code session ingestion to a…
Esity Mar 27, 2026
6d719dd
route legion chat LLM requests through daemon, hard fail without it (…
Esity Mar 28, 2026
e08f808
Merge pull request #49 from LegionIO/feature/chat-daemon-routing
Esity Mar 28, 2026
226bf2f
add definition DSL, actor DSL, and component naming standardization
Esity Mar 28, 2026
3feed2d
add three-tier API router and /api/extensions dispatch
Esity Mar 28, 2026
ff7551d
change amqp_prefix from legion. to lex. for extension exchanges and q…
Esity Mar 28, 2026
48b5f57
add runners. component type segment to queue routing keys (task 3.2)
Esity Mar 28, 2026
cad5fdd
auto-generate transport messages from runner definitions after build_…
Esity Mar 28, 2026
ab94fe1
add admin purge-topology CLI for v2.0->v3.0 AMQP topology migration (…
Esity Mar 28, 2026
2d86fea
add library gem self-registration, sync dispatch, and remote AMQP dis…
Esity Mar 28, 2026
560823f
apply copilot review suggestions (#1)
Esity Mar 28, 2026
5fdef38
apply copilot review suggestions (#51)
Esity Mar 28, 2026
451f389
apply copilot review suggestions round 2 (#51)
Esity Mar 28, 2026
bde4ba1
apply copilot review suggestions round 3 (#51)
Esity Mar 28, 2026
8edd6f7
apply copilot review suggestions round 4 (#51)
Esity Mar 28, 2026
5e14033
apply copilot review suggestions round 5 (#51)
Esity Mar 28, 2026
997cde1
add file pattern matcher for absorbers
Esity Mar 28, 2026
8f66253
add AbsorberDispatch module for absorb request routing
Esity Mar 28, 2026
6514aa3
add absorber AMQP transport with v3.0 topology naming and chat URL de…
Esity Mar 28, 2026
ea75fa9
add OAuth2 callback server, connect CLI, and token revocation detection
Esity Mar 28, 2026
fef9bd3
add absorber pipeline E2E integration spec and bump to 1.6.25
Esity Mar 28, 2026
7da5529
fix ECONNRESET in OauthCallback#send_response and cli.rb spacing
Esity Mar 28, 2026
699ab26
v3.0 naming convention completion sweep
Esity Mar 28, 2026
238e0b4
bump to 1.6.26, update changelog
Esity Mar 28, 2026
b2133ef
fix resolve_secrets! ordering: re-resolve after Crypt.start for lease…
Esity Mar 28, 2026
f11e3f0
remove deprecated function_* methods and stale v2.0 references
Esity Mar 28, 2026
7a031ec
fix lex list output with table formatting
Esity Mar 28, 2026
23fc009
fix fallback route guards using defined? instead of router registrati…
Esity Mar 28, 2026
71031c8
remove deprecated expose_as_mcp_tool and mcp_tool_prefix class methods
Esity Mar 29, 2026
1dc6335
add mount DSL method to Hooks::Base to fix boot crash
Esity Mar 29, 2026
6a532ea
fix boot crash in hook builder when runner_class returns nil for non-…
Esity Mar 29, 2026
2bf3788
add POST /api/logs endpoint for CLI error forwarding
Esity Mar 29, 2026
585c575
add missing api absorbers and auth_teams route modules
Esity Mar 29, 2026
a77535b
fix nested method definition lint in auth_teams helper
Esity Mar 29, 2026
7b276dd
fix claude code hook format in setup command
Esity Mar 29, 2026
c754004
add knowledge as top-level CLI subcommand
Esity Mar 29, 2026
4f8d3c7
bump to 1.6.33, update changelog
Esity Mar 29, 2026
962b22d
fix nil guard in api logs endpoint
Esity Mar 29, 2026
2996b55
swarm: fix for #57 (attempt 1)
Esity Mar 29, 2026
d1f76a8
swarm: fix for #55 (attempt 1) (#61)
Esity Mar 29, 2026
9b5af75
merge main into swarm/fix-LegionIO-57
Esity Mar 29, 2026
a4f3f44
swarm: fix for #57 (attempt 2)
Esity Mar 29, 2026
9812fa0
swarm: fix for #60 (attempt 1)
Esity Mar 29, 2026
212010f
swarm: fix for #56 (attempt 1) (#62)
Esity Mar 29, 2026
d045f00
swarm: fix for #59 (attempt 1)
Esity Mar 29, 2026
696cd4a
merge main into swarm/fix-LegionIO-57
Esity Mar 29, 2026
213b73c
swarm: fix for #57 (attempt 3)
Esity Mar 29, 2026
cfd85c2
swarm: fix for #58 (attempt 1) (#64)
Esity Mar 29, 2026
939d26c
merge main into swarm/fix-LegionIO-60
Esity Mar 29, 2026
6defe5b
swarm: fix for #60 (attempt 2)
Esity Mar 29, 2026
d1abd02
add Workflow::Manifest YAML parser
Esity Mar 30, 2026
afa8641
add Workflow::Loader for installing chain relationships
Esity Mar 30, 2026
8c817c7
add legion workflow CLI (install/list/uninstall/status)
Esity Mar 30, 2026
d422369
add autonomous-github-lifecycle workflow manifest
Esity Mar 30, 2026
d6aad29
add workflow bundle system (install/list/uninstall/status)
Esity Mar 30, 2026
dbf5b00
enhance extension helpers with status, layered defaults, and consiste…
Esity Mar 30, 2026
76b4c3b
apply copilot review suggestions (#67)
Esity Mar 30, 2026
980435c
apply copilot re-review suggestions (#67)
Esity Mar 30, 2026
5dc491d
fix CI spec failures for helper wrappers (#67)
Esity Mar 30, 2026
ed2c971
fix pre-existing CI failures: archiver date overflow, chain model stu…
Esity Mar 30, 2026
805f4e7
fix flaky oauth callback spec race condition on ruby 3.4 (#67)
Esity Mar 30, 2026
7d847be
Merge pull request #67 from LegionIO/feature/enhance-extension-helpers
Esity Mar 30, 2026
2a8a43e
add workflow manifests for autofix, mind-growth, and factory pipelines
Esity Mar 30, 2026
b99a825
Merge branch 'main' into feature/workflow-bundles
Esity Mar 30, 2026
4500dbd
Merge pull request #68 from LegionIO/feature/workflow-bundles
Esity Mar 30, 2026
e1ec7b1
Merge branch 'main' into swarm/fix-LegionIO-59
Esity Mar 30, 2026
245ea0b
Merge branch 'main' into swarm/fix-LegionIO-60
Esity Mar 30, 2026
a022155
apply copilot review suggestions (#63)
Esity Mar 30, 2026
421b659
merge main and resolve conflicts (#63)
Esity Mar 30, 2026
480d98a
apply copilot review suggestions (#66)
Esity Mar 30, 2026
0d76e5e
apply copilot review suggestions (#66)
Esity Mar 30, 2026
c587e91
Merge pull request #66 from LegionIO/swarm/fix-LegionIO-59
Esity Mar 30, 2026
de5594c
Merge branch 'main' into swarm/fix-LegionIO-57
Esity Mar 30, 2026
99e26bc
Merge branch 'main' into swarm/fix-LegionIO-60
Esity Mar 30, 2026
f5144ad
Merge pull request #63 from LegionIO/swarm/fix-LegionIO-57
Esity Mar 30, 2026
bb66890
Merge branch 'main' into swarm/fix-LegionIO-60
Esity Mar 30, 2026
601fdc1
fixing a few things
Esity Mar 30, 2026
bababf0
apply copilot review suggestions (#65)
Esity Mar 30, 2026
0b6ca10
bump version to 1.6.37, add changelog for TBI patterns API and OpenIn…
Esity Mar 30, 2026
7eefcbc
fixing spec
Esity Mar 30, 2026
afac9e9
apply copilot review suggestions (#65)
Esity Mar 30, 2026
4394d5c
Merge pull request #65 from LegionIO/swarm/fix-LegionIO-60
Esity Mar 30, 2026
d4a1064
remove deprecated lex-cortex from agentic setup pack
Esity Mar 30, 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