# STATE.md — What harb currently is and does

- [2026-03-13] Evolution pipeline works end-to-end: Push3 → transpile → compile → revm fitness evaluation → selection (#665)
- [2026-03-13] Diverse seed generation for evolution population (#656)
- [2026-03-13] Crossover operator for Push3 programs (#657)
- [2026-03-13] Elitism preserves top N candidates unchanged across generations (#643)
- [2026-03-13] Gas limit as evolutionary fitness pressure (#645)
- [2026-03-13] Default bear outputs for crashed/broken Push3 programs (#651)
- [2026-03-13] Normalized inputs for Push3 optimizer (0..1e18 indicators) (#649)
- [2026-03-13] Bootstrap VWAP with seed trade during deployment (#633)
- [2026-03-13] e2e tests skip for tools-only and docs-only PRs (#641)
- [2026-03-13] Issue templates for bug, feature, push3-seed, refactor (#678)
- [2026-03-13] revm fitness evaluator with UUPS bypass and graceful attack ops (#629)
- [2026-03-12] Dark factory: dev-agent, review-agent, supervisor with cron */10 staggered
- [2026-03-12] CI: single build-and-test pipeline + e2e with path filtering
- [2026-03-12] Ponder indexing: transfers, mints, burns, staking, protocol stats
- [2026-03-12] Landing page with LiveStats, WalletCard, contract addresses
- [2026-03-12] Staking app with position dashboard and P&L tracking
- [2026-03-12] OptimizerV3 with Push3 transpiler output injection
- [2026-03-12] Three-position strategy: Floor, Anchor, Discovery
- [2026-03-12] VWAPTracker for price oracle
- [2026-03-12] Harberger tax staking mechanism
- [2026-03-13] LLM seed — Momentum Follower optimizer (#695)
- [2026-03-14] evolve.sh auto-incrementing per-run results directory (#752)
- [2026-03-14] EVAL_MODE now defaults to revm (#751)
- [2026-03-14] LLM seed — Defensive Floor Hugger optimizer (#672)
- [2026-03-14] evolve.sh stale tmpdirs break subsequent runs (#750)
- [2026-03-14] evolve.sh silences all batch-eval errors with 2>/dev/null (#749)
- [2026-03-14] evolution-daemon.sh — perpetual evolution loop on DO box (#748)
- [2026-03-14] No mainnet VWAP bootstrap runbook (#728)
- [2026-03-14] fitness.sh individual-scoring path still silences errors (#766)
- [2026-03-14] bootstrap.sh anvil_setCode guard now targets correct feeDest 0xf6a3... (#760)
- [2026-03-14] llm_contrarian.push3 AW=150/250 clamped to 100 — three rounds unaddressed (#756)
- [2026-03-14] bootstrap.sh hardcodes BASE_SEPOLIA_LOCAL_FORK even on mainnet forks (#746)
- [2026-03-14] remove MAX_ANCHOR_WIDTH clamp in ThreePositionStrategy (#783)
- [2026-03-15] re-add MAX_ANCHOR_WIDTH=1233 guard at LiquidityManager call site; anchorWidth clamped before _setPositions, independent of Optimizer (#817)
- [2026-03-14] increase CALCULATE_PARAMS_GAS_LIMIT from 200k to 500k (#782)
- [2026-03-15] add evolution run 8 champion to seed pool (#781)
- [2026-03-15] fix FitnessEvaluator.t.sol broken on Base mainnet fork (#780)
- [2026-03-15] No generic flag dispatch: only `token_value_inflation` is ever zero-rated (#723)
- [2026-03-15] `llm`-origin entries in manifest have null fitness and no evaluation path (#724): evaluate-seeds.sh scores null-fitness seeds and writes results back to manifest.jsonl
- [2026-03-15] manifest.jsonl schema has no canonical machine-readable definition (#720)
- [2026-03-15] CID format change silently drops historical generation JSONL on re-admission (#757): warn on unrecognised CID format instead of silently skipping
- [2026-03-15] evolve.sh does not write `note` field — schema drift between hand-written and evolved entries (#719): auto-generate note "Evolved from <seed> (run<N> gen<G>)" for every admitted entry
- [2026-03-15] No-op varCounter assignment before false branch in processExecIf (#655)
- [2026-03-15] Old-format CIDs are warned but still silently dropped from the pool (#801): legacy CID warning made explicit (migration not supported), CID format contract documented in comment
- [2026-03-15] red-team.sh and export-attacks.py use Base Sepolia addresses labeled as mainnet (#794): replace Sepolia SWAP_ROUTER and V3_FACTORY with correct Base mainnet addresses; add Basescan source-link comments
- [2026-03-15] evo_run007_champion.push3 always returns fixed params regardless of staking (#791)
- [2026-03-15] evo_run007_champion.push3 note has same CI/DD inversion (#790)
- [2026-03-15] txnBot AGENTS.md ENVIRONMENT enum is stale (#784)
- [2026-03-20] Adoption milestone state ambiguity in MEMORY.md (#1068)
- [2026-03-20] OptimizerV3Push3 as IOptimizer always returns bear defaults — integration risk (#1063)
- [2026-03-20] implement evidence/resources and evidence/protocol logging (#1059): formulas/run-resources.toml (disk/RAM/API/CI sense formula, daily cron 06:00 UTC) and formulas/run-protocol.toml (TVL/fees/positions/rebalances sense formula, daily cron 07:00 UTC); evidence/resources/ and evidence/protocol/ directories; schemas in evidence/README.md
- [2026-03-21] Optimizer and OptimizerV3 lack _disableInitializers() in constructor (#1055)
- [2026-03-21] evolution formula must commit results via PR before closing (#1047)
