Skip to content

Latest commit

 

History

History
53 lines (48 loc) · 2.53 KB

File metadata and controls

53 lines (48 loc) · 2.53 KB

evolve — Project Crystal

Stack:

  • Rust 2024
  • Cargo virtual workspace
  • serde + serde_json
  • thiserror
  • uuid (v1, v4 + serde features)
  • proptest
  • tokio (for future async)
  • GitHub Actions CI
  • Apache 2.0 license
  • SQLite (planned, Phase 2)
  • PyO3 (planned, Phase 12)
  • napi-rs (planned, Phase 13)
  • axum (planned for proxy + dashboard)

Key Files:

  • ~/projects/active/evolve/Cargo.toml: Workspace root, virtual workspace
  • ~/projects/active/evolve/rust-toolchain.toml: Stable channel
  • ~/projects/active/evolve/.gitignore
  • ~/projects/active/evolve/LICENSE (Apache 2.0 with copyright filled)
  • ~/projects/active/evolve/README.md
  • ~/projects/active/evolve/CONTRIBUTING.md
  • ~/projects/active/evolve/.github/workflows/ci.yml: Rust matrix + coverage
  • ~/projects/active/evolve/crates/evolve-core/Cargo.toml
  • ~/projects/active/evolve/crates/evolve-core/src/lib.rs
  • ~/projects/active/evolve/crates/evolve-core/src/schema.rs (FieldSchema enum, GenomeSchema, validate)
  • ~/projects/active/evolve/crates/evolve-core/src/ids.rs (ProjectId/ConfigId/ExperimentId/SessionId/SignalId/AdapterId newtypes)
  • ~/projects/active/evolve/crates/evolve-core/src/agent_config.rs (AgentConfig, ModelPref, ResponseStyle, default_for, fingerprint, extension)

Patterns:

  • Tool-hook driven architecture for passive drop-in evolution
  • Universal AgentConfig with typed extensions and opaque per-tool JSON map
  • Champion/challenger Bayesian promotion for selective evolution

Decisions:

  • Pivoted from active-evolution-on-benchmark to passive drop-in evolution
  • Used champion/challenger Bayesian beta-binomial posterior for promotion
  • Adopted universal AgentConfig core with typed extensions and opaque per-tool JSON map
  • Tool-hook driven, no background daemon for zero idle cost
  • Local-only SQLite at ~/.evolve/evolve.db for simplicity
  • Single LLM client crate used for occasional challenger generation
  • Dropped HTTP/gRPC service mode crate
  • Virtual workspace pattern chosen over single root crate
  • Adopted Rust 2024 edition

Gotchas:

  • Initial attempt to add a root [package] block in Cargo.toml resulted in architectural risk for the planned 7-crate workspace
  • Reverted to virtual-workspace shape with members=['crates/evolve-core'] after spec reviewer feedback
  • Original active-evolution architecture was fully designed before product pivot revealed it was the wrong shape
  • Initial subagent-driven execution loop was overkill for byte-exact scaffolding tasks; switched to direct execution for trivial scaffolding