Skip to content

Latest commit

 

History

History
76 lines (68 loc) · 3.82 KB

File metadata and controls

76 lines (68 loc) · 3.82 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[Unreleased]

Added

  • errors.py with typed exceptions: AgenticLabError, ConfigError, CompileError, SafetyViolation, ResourceUnavailable, CapabilityMismatch, DependencyCycle.
  • PlanStatus enum (DRAFT / APPROVED / REJECTED) and SafetyHook declarative constraint model.
  • ExecutionPlan now carries errors (blocking) separately from warnings (advisory), plus status and spec_hash for auditability.
  • ExperimentStep.depends_on and ExperimentStep.required_capabilities.
  • PlannedCommand.requires_approval (derived from LabConfig.human_approval_required_for plus matching safety hooks).
  • DAG validation in the compiler: detects missing dependencies and cycles (cycle path included in the error message).
  • Capability check: a step's required_capabilities must be a subset of the assigned resource's capabilities.
  • Declarative SafetyHooks in lab YAML — match on action and parameters, verdict deny (compile error) or require_approval (sets the approval flag).
  • Tolerant load_lab_config that rejects unknown keys with ConfigError instead of crashing.
  • Real placeholder step emitted by hypothesis_to_experiment_spec so the reasoning plane now connects to the EaC plane.
  • Tanda-2 scaffolding ports: ProximityAgent, TournamentRanker, MetaReviewer, StopCriteria (declared, not yet wired into the supervisor).
  • adapters/null/ package with no-op / heuristic implementations: NullLiteratureProvider, EchoGenerator, HeuristicReviewer, ScoreSortRanker, IdentityEvolver, NoopProximityAgent, TemplateMetaReviewer.
  • CLI subcommands validate-lab, validate-spec, dry-run (non-zero exit code on compile errors).
  • Apache-2.0 LICENSE + NOTICE.
  • CONTRIBUTING.md, SECURITY.md, CHANGELOG.md.
  • .gitignore; pyproject.toml now declares [project.optional-dependencies].dev (pytest, ruff, mypy, types-PyYAML) and [tool.ruff] / [tool.mypy].

Changed

  • __init__.py exports the complete public surface (models, ports, errors, helpers). Downstream consumers no longer need to import from internal modules.
  • protein_lab.yaml example now uses safety_hooks (declarative) instead of string-only safety_rules for blocking checks.
  • _step_requires_approval uses exact action membership instead of substring matching to avoid false positives.
  • Docs: README adds a References section; ARCHITECTURE.md adds a "concept → module" map; IMPLEMENTATION_PLAN.md updated with v0.1.x ✓ / v0.2 / v0.3 / v0.4 roadmap.

Fixed

  • Existing smoke test asserted warnings == [], which broke when the new declarative require_approval hook started emitting an advisory warning. Tightened the assertion to errors == [] so warnings remain informational.

[0.1.0] — initial skeleton

Added

  • Core dataclasses: Hypothesis, Review, ReviewBatch, ExperimentSpec, ExperimentStep, ExecutionPlan, PlannedCommand, LabConfig, LabState, ResourceState, EvidenceRef.
  • Clean ports (Protocols): LiteratureProvider, HypothesisGenerator, HypothesisReviewer, HypothesisRanker, HypothesisEvolver, ExperimentPlanner, ExperimentCompilerPort, Scheduler, Executor.
  • CoScientistSupervisor one-shot loop (literature → generate → review → rank → evolve).
  • ExperimentCompiler with basic static checks (resource presence, step-by-step lowering, runtime checks attached).
  • CLI commands show-lab and compile.
  • Example protein_lab.yaml and proteinlab_hit_to_hypothesis.yaml.
  • Architecture / reference / implementation-plan docs.
  • Smoke tests (2 passing).