Skip to content

v0.3.0

@nshkrdotcom nshkrdotcom tagged this 26 Dec 05:43
Integrate CrucibleEnsemble.Stage with crucible_framework by implementing the
Crucible.Stage behaviour. The stage now uses Crucible.Context instead of
plain maps, storing results in artifacts, metrics, and assigns with proper
stage completion tracking.

Stage Integration:
- Implement Crucible.Stage behaviour with run/2 and describe/1 callbacks
- Use Crucible.Context helpers for put_artifact, put_metric, assign
- Mark stage completion with mark_stage_complete/2
- Store ensemble_result in artifacts, consensus/latency/strategy in metrics
- Add comprehensive stage behaviour test suite with 585 lines of tests

Dependencies:
- Add crucible_framework ~> 0.4.0 for Stage behaviour and Context struct
- Bump crucible_ir from 0.1.1 to 0.2.0
- Add ecto_sql ~> 3.11 as framework dependency
- Add credo ~> 1.7 for static analysis

Code Quality Refactors:
- Replace case statements with mapping tables in Executor for env vars and
  model names
- Extract Levenshtein row calculation helpers in Normalize and Similarity
- Extract cosine similarity calculation and cluster merging helpers
- Refactor hedged backup handling and task yield processing in Strategy
- Simplify CSV generation using Enum.map_join/3 in Metrics
- Add module aliases in Vote for cleaner function calls
- Extract ranked choices parsing and semantic similarity score helpers

Documentation:
- Add docs/20251225/ snapshot with current_state.md, gaps.md, and
  implementation_prompt.md for future development guidance
- Update CHANGELOG with comprehensive v0.3.0 release notes

Branding:
- Replace simple E hexagon logo with detailed lyre ensemble mark featuring
  gradients, staff lines, strings, and musical note accents

Testing:
- Update stage_test.exs to use Crucible.Context throughout
- Add stage_behaviour_test.exs for behaviour compliance verification
- Extract telemetry handlers as module functions in metrics_test.exs
- Enable integration tests with mock executor responses
- Fix semantic similarity assertion to use Enum.empty? check

Configuration:
- Add config/config.exs to disable crucible_framework Repo
- Configure Logger metadata keys for ensemble metrics
Assets 2
Loading