Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
651 commits
Select commit Hold shift + click to select a range
4e12faa
lazy-load lex-agentic-memory gem in SearchTraces chat tool
Esity Mar 23, 2026
13902ff
add SearchTraces chat tool for memory trace search
Esity Mar 23, 2026
730fff6
add search_traces chat tool for cognitive memory trace lookup
Esity Mar 23, 2026
94dd3e5
add logging to actors and builders, register search traces with llm a…
Esity Mar 23, 2026
9a9bdd6
add apollo knowledge graph REST API with status, query, ingest, and r…
Esity Mar 23, 2026
cb1d739
add apollo knowledge graph endpoints to OpenAPI spec
Esity Mar 23, 2026
abcd3f0
add date coercion and truncation signaling to TraceSearch (v1.4.133)
Esity Mar 23, 2026
aaa2378
add apollo knowledge graph stats endpoint with entry counts and confi…
Esity Mar 23, 2026
45bef07
add apollo maintenance endpoint for decay cycle and corroboration tri…
Esity Mar 23, 2026
31ea97a
add apollo CLI command and search_traces chat tool (v1.4.136)
Esity Mar 23, 2026
1b7e1dc
rewrite trace command with formatter, json mode, and spec coverage (v…
Esity Mar 23, 2026
b645923
add query_knowledge chat tool for apollo knowledge graph integration …
Esity Mar 23, 2026
f01b693
add gaia channels, buffer, and sessions API endpoints and CLI command…
Esity Mar 23, 2026
e1432e9
fix gaia buffer empty? logic bug, add gaia API rack-test spec with 10…
Esity Mar 23, 2026
d7e741e
add gaia channels, buffer, and sessions to openapi spec
Esity Mar 23, 2026
e18c479
add memory command spec with 14 examples covering list, add, forget, …
Esity Mar 23, 2026
708954d
add coldstart command spec with 15 examples covering ingest, preview,…
Esity Mar 23, 2026
2d1f2e2
add search traces chat tool and expand trace search spec coverage (v1…
Esity Mar 23, 2026
d39629e
add specs for save_memory, search_memory, spawn_agent, and web_search…
Esity Mar 23, 2026
7722daa
add swarm command spec with 16 examples covering list, show, start, a…
Esity Mar 23, 2026
075dd3a
add graph command, graph builder/exporter, and cost command specs (37…
Esity Mar 23, 2026
4ed2297
add skill command spec with 14 examples covering list, show, create, …
Esity Mar 23, 2026
ec81bc1
add extension tool loader spec with 13 examples covering discovery, t…
Esity Mar 23, 2026
c98127d
add ingest knowledge chat tool for saving facts to apollo from chat (…
Esity Mar 23, 2026
9c69404
expand context spec from 4 to 17 examples covering project detection,…
Esity Mar 23, 2026
6c4c2f7
add llm gateway path spec coverage with 6 examples for ingress routin…
Esity Mar 23, 2026
e61748d
add task, chain, generate, audit, and rbac command specs (48 examples)
Esity Mar 23, 2026
bdd6e19
add consolidate memory chat tool for LLM-powered memory deduplication…
Esity Mar 23, 2026
eb741f3
add trace summarize with aggregate statistics and CLI subcommand (v1.…
Esity Mar 23, 2026
41cd6de
add init command spec with environment detector and config generator …
Esity Mar 23, 2026
cb1994d
add dashboard renderer/data fetcher and init command specs (29 examples)
Esity Mar 23, 2026
7994aec
add search traces chat tool for querying task execution history
Esity Mar 23, 2026
4f68a5e
add relate knowledge chat tool for apollo knowledge graph traversal (…
Esity Mar 23, 2026
688c0a0
add knowledge maintenance chat tool for apollo decay and corroboratio…
Esity Mar 23, 2026
3e369be
add knowledge stats chat tool for apollo graph health inspection (v1.…
Esity Mar 23, 2026
dae63a8
add summarize traces chat tool for metering database analytics (v1.4.…
Esity Mar 23, 2026
9ca5ee9
update CLAUDE.md with current chat tool count (18 built-in tools)
Esity Mar 23, 2026
c5daf58
add cognitive awareness to chat context with memory and apollo probin…
Esity Mar 23, 2026
ac9b2c1
add auth, tenant, and request logger middleware specs (28 examples)
Esity Mar 23, 2026
7e22eb0
add list_extensions chat tool for extension and runner discovery (v1.…
Esity Mar 23, 2026
b82e73d
add manage_tasks chat tool for task list, show, logs, and trigger via…
Esity Mar 23, 2026
5c1b4bf
add system_status chat tool for daemon health and component readiness…
Esity Mar 23, 2026
93a04c8
add daemon awareness to chat context system prompt with health probin…
Esity Mar 23, 2026
a189c55
add dynamic date injection to trace search for time-relative queries …
Esity Mar 23, 2026
b6ca372
enhance search_memory with apollo knowledge graph integration (v1.4.154)
Esity Mar 23, 2026
944500b
enhance save_memory with automatic apollo knowledge graph ingestion (…
Esity Mar 23, 2026
83bec6e
add session summary and message count to session store save and list …
Esity Mar 23, 2026
0f42eb0
add view_events chat tool for real-time event bus monitoring (v1.4.157)
Esity Mar 23, 2026
c813864
add cost_summary chat tool for LLM spending and token usage monitorin…
Esity Mar 23, 2026
776e32f
add reflect chat tool for conversation knowledge extraction into apol…
Esity Mar 23, 2026
6fda223
add manage_schedules chat tool for scheduled task management via daem…
Esity Mar 23, 2026
5b9b82f
add worker_status chat tool for digital worker monitoring and health …
Esity Mar 23, 2026
f409ac1
add anomaly detection to trace search: cost, latency, and failure rat…
Esity Mar 23, 2026
6006ac9
add traces REST API and search_traces chat tool (v1.4.163)
Esity Mar 23, 2026
341e14c
add detect_anomalies chat tool for proactive health monitoring (v1.4.…
Esity Mar 23, 2026
70d0a51
add time-bucketed trend analysis to trace search and REST API (v1.4.165)
Esity Mar 23, 2026
adf2717
add view_trends chat tool with tabular trend visualization (v1.4.166)
Esity Mar 23, 2026
002a4f5
add trigger_dream chat tool for dream cycle triggering and journal vi…
Esity Mar 23, 2026
f66525f
add generate_insights chat tool combining anomalies, trends, and heal…
Esity Mar 23, 2026
0fe684d
fix trace_search column names to match metering_records schema (v1.4.…
Esity Mar 23, 2026
589c634
add costs REST API for metering cost aggregation (v1.4.170)
Esity Mar 23, 2026
f38dcf1
add search_traces chat tool for natural language memory trace search …
Esity Mar 23, 2026
93197c4
add budget_status chat tool for session cost monitoring (v1.4.172)
Esity Mar 23, 2026
6bf30e8
add provider_health chat tool for LLM provider status monitoring (v1.…
Esity Mar 23, 2026
cd104e1
add provider health REST API endpoints (v1.4.174)
Esity Mar 23, 2026
25c7bd9
add model_comparison chat tool for LLM pricing analysis (v1.4.175)
Esity Mar 23, 2026
2414fd9
add shadow_eval_status chat tool for model comparison insights (v1.4.…
Esity Mar 23, 2026
0c30ecf
add entity_extract chat tool for Apollo NER integration (v1.4.177)
Esity Mar 23, 2026
2fa6d30
add arbitrage_status chat tool for LLM cost optimization insights (v1…
Esity Mar 23, 2026
c1a37eb
add escalation_status chat tool for model upgrade insights (v1.4.179)
Esity Mar 23, 2026
290b7ee
add graph_explore chat tool and apollo graph/expertise api endpoints …
Esity Mar 23, 2026
e96fe98
add scheduling_status chat tool for peak/off-peak and batch queue vis…
Esity Mar 23, 2026
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
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