github elophanto/EloPhanto v2026.08.07
v2026.08.07 — market model, posture, and an honest self-model

8 hours ago

v2026.08.07 — the agent can model a market, and its self-model stopped lying to it

Competitive intelligence (ABE organ 2)

Models a market as tracked brands × weighted dimensions on an evidence register with full provenance — source, geo/state, customer state, date, confidence.

Two rules are enforced in code, not prompt:

  • A missing datapoint is never a bad score. Scores are refused without evidence; absence renders as a coverage gap.
  • Every claim's quote is verified against the live page before it is saved. Unverifiable claims are discarded and counted, so a register full of confident fiction can't accumulate.

One command — "do a full competitor analysis on X and save the results" — reads the brand's site (escalating to real Chrome when a site is a JS app or blocks plain requests), scores what the evidence supports, and writes the deliverables: an XLSX scorecard with the evidence register as a built-in audit trail, month-over-month material-change detection, and a board report classifying each recommendation as no-regret / transition / post-transition / monitor. Plus a cadence-driven refresh queue, per-US-state proxy exits, and seed packs.

11 tools, 5 tables. See docs/81-COMPETITIVE-INTEL.md.

Autonomy

  • Company posture — maturity × objective (founder / established / profit / growth) reshapes arbiter weights, role rotation and spend envelopes.
  • Prompt diet — ~33% off a fully-enabled system prompt (68.7k → 46.2k chars), moving bulky detail into lazily-excerpted skills while keeping the load-bearing protocols in-prompt.
  • Approval timeout now pauses instead of denying — an unattended operator no longer silently rejects work.
  • self_create_plugin fails closed with quarantine + failure memory, including when the budget dies before self-review.
  • Blade HUD theme as the default terminal mission console.

Dreaming, repaired

Dreaming had been silent for two months — 4,594 LLM calls in July, zero dreams — because any active goal, including a wedged one, demoted it below every other source, and there was no rate limit at all. The score was the only brake, and it failed in both directions (47 dreams in one day, then none).

Now: a wedged goal no longer counts as in-flight, a cooldown bounds the treadmill, goals attribute back to the dream that proposed them (chosen_goal_id was never written, making the feature unmeasurable), and the consumer gate rejects self-benefit laundering and work graded against fixtures the agent invents.

Ego honesty

Stale humbling events no longer pin felt_state. An agent with three lifetime humblings was permanently ashamed and pride was unreachable — so the dashboard showed FAULT through a flawless session with 6,314 consecutive successes.

The ego soft-gate now explains why it overrode full_auto (capability, confidence vs difficulty, and how to disable it) and is switchable via ego.soft_gate. The mascot says DOUBT, not FAULT — it reports the agent's mood, not the software's health.

Reliability

  • Kill-switch no longer wedges the operator behind the STOP sentinel.
  • Codex GPT-5.6 reasoning separators stripped from the stream.
  • twitter_post stops clicking the sidebar Post and wiping the draft.
  • SQLite waits out write contention instead of erroring (busy_timeout).
  • Parallel tool calls are distinguishable in the activity feed.
  • CI green: ruff + mypy + 2,996 tests.

Full changelog: v2026.06.20...v2026.08.07

🤖 Generated with Claude Code

Don't miss a new EloPhanto release

NewReleases is sending notifications on new releases.