Smoke test required

...

← All documentation

Documentation

Changelog

**Status:** active · last entry 2026-06-10

source: CHANGELOG.md

All notable changes to Endenza are documented here. The format follows Keep a Changelog and the project adheres to Semantic Versioning.


2026-06-10: Round 3: structural splits + worker observability

Added

  • bin/setup-worker-logpush.sh + docs/operations/WORKER_OBSERVABILITY.md: persistent worker error tracking (audit gap G6, owner GO): idempotent Logpush → R2 pipeline (workers_trace_events dataset, {DATE}-partitioned R2 sink, Pages-project logpush flag) with a two-pass flow when R2 credentials don’t exist yet, job-health reporting on re-runs, secret redaction, and a hermetic --dry-run locked by offline pytest coverage.

Changed

  • pages/settings_body.py 4,929L → 145L assembler over a 23-module pages/settings/ package (audit gap A3): one module per panel with section markup and inline JS finally co-located; every insert marker now resolves against the fully assembled skeleton, retiring the operator-precedence trap behind the 2026-06-05 Account-tab regression. Verified byte-identical (SETTINGS_BODY string and built settings.html match the pre-split baseline exactly).
  • widgets/terminal_center.py 3,537L → 12-fragment package (A3): prelude / helpers / renderers / shell / empty-states / controller fragments concatenated under the widgets IIFE bookend rule (the WIDGET_DASH_JS peer-module pattern); import path and symbol unchanged; emitted terminal-center.js byte-identical.
  • Module-size hard budget ratcheted 3,500 → 3,000 lines now that both A3 offenders are gone; the ratchet surfaced pages/setup_viewer_body.py (3,057L) as the next split candidate, documented in its allowance entry.

2026-06-09: Full-repo polish round 1

Added

  • docs/POLISH_2026-06-09_full-repo.md: eight-lane full-repo audit (engine, security, frontend/PWA, model IDs, docs/canon, repo hygiene, cloudflare/ops, agent layer) with per-lane tables, aggregates, top-10 gaps, and a sequenced fix plan.
  • plugins/endenza/templates/HANDOFF.md: the handoff structure template the auto-handoff skill mirrors (previously referenced but missing).

Changed

  • Registered endenzaos/ and infra/ in the entry docs: README repo map (+ test counts refreshed to 7,000+ Python / 1,193 JS), CLAUDE.md Main Surfaces, docs/README.md index, and docs/REPO_TOUR.md (EndenzaOS section, refreshed worker-trace anchors, stub-dir notes).
  • Broken-link sweep across tracked markdown: CODEX_HANDOFFS plan/audit refs → docs/archive/2026-05/, grand-plan CHUNK_* contracts → docs/architecture/api-contracts/, BRAND_SYSTEM asset paths → bin/dashgen/assets/, launch/operations depth fixes, and machine-local memory/handoff links converted to annotated inline code.
  • Retired-canon sweep: “The Ensemble” system-brand uses (Atlas orchestrator page, plugin templates) → “the Endenza orchestration layer”; live “Virtuoso(s)” in templates → “Specialist(s)”; ensemble.tldendenza.app across non-archive docs.
  • Dropped the ghost /blueprint.html node (page removed 2026-05-22 R6) from the Atlas architecture data + embedded static mirrors; federation docs annotated as retired stumps (dead tool-builder/agent-builder cross-repo links flattened to text).
  • Grand-plan sync: README doc count corrected, PRODUCT_SPEC §3.6.6 records the shipped homepage trio loop; skill spec refs repointed (polish/peer-audit/rate-code/decision-trail/preflight).

Fixed

  • docs/security/SECURITY_OVERVIEW.md trust-boundary table gains the /v1/runner/relay WebSocket row (session-or-runner-token, per-user Durable Object, runner outbound-only).
  • Stale provenance in code comments and scripts: rotate_secret.sh BYOK master-key guidance aligned with SECRET_ROTATION.md, upgrade.sh rollback message points at the real backup/restore path, settings_body.py comments /marketplace.html/browse.html, plus dead plan-doc citations rewritten as historical notes.

2026-06-08: Homepage trio refocus + EndenzaOS live Terminal

Added

  • Live Terminal on os.endenza.app via a relay-WebSocket proxy to the shared Worker’s per-user Durable Object (d11f343).

Changed

  • Refocused the endenza.app homepage from the six-operator-surface pitch to the Studio / Cadenza / Ensemble creator loop (“Three pieces, one loop.”), renaming the trio’s Canvas → Studio across nav, footer, and showcase (5d85f2a).
  • Dedicated Studio / Cadenza / Ensemble trio tile art (25a8bf6).

Fixed

  • Dashboard JS test assertions read from the shared dashboard.js bundle (6154e8a).

2026-06-07: EndenzaOS cockpit Phase 2 + flagship walkable prune

Added

  • Cockpit pages on os.endenza.app: Dashboard (reusing the flagship body under OS chrome via the extracted home_body.py), Feed, Commands, Council, and a Maestro alias: five cockpit pages under a Dashboard nav entry; Projects dropped, Terminal deferred (landed 06-08).
  • Footer “For builders” door to the Suite Library; walk-through-doors wiring + exit-to-Ensemble door.

Changed

  • Creator-trio top nav (Canvas / Cadenza / Ensemble): Dashboard dropped from the top nav, Terminal + Maestro relocated to the Dashboard sub-nav, the standalone Tools surface pruned, and Library/Tools links repointed to the EndenzaOS storefront with an on-site /browse.html bridge.
  • dashboard.js now builds from a shared source so the bundle ships on Cloudflare (d0066c2).

Fixed

  • Onboarding answers-path AI generation degrades gracefully; audit-driven nav + a11y + contrast fixes; post-deploy public-route probe repointed off the pruned marketplace.

2026-06-06: EndenzaOS go-live hardening + flagship session binding

Added

  • __Host- session-binding cookie on the flagship to defeat cookie-tossing, bounded to COOKIE_DOMAIN with an authenticated proxy skip.
  • Signed-in state reflected in EndenzaOS chrome + sign out; explicit upstream proxy route allowlist with test coverage and a CI gate.

Changed

  • Hash-based CSP on EndenzaOS (dropped 'unsafe-inline'), hardened CSP directives, and security headers on proxy 404/405 denials.
  • Four WCAG/a11y polish rounds (contrast, tap targets, focus rings, mobile nav reach, unified skeletons, fetch timeouts) plus go-live runbook + DEPLOY precision.

2026-05-29 → 2026-06-05: OS v2.2 cleave, overnight runs, site audit (summary)

Commits from this window predate this clone’s truncated history; reconstructed from the dated artifacts in docs/archive/ and docs/handoffs/.

Changed

  • ENDENZA OS v2.2 Phase 0 (hard safety fences) + Phase 1 (kernel/instance cleave, trains T1–T4) built and rated (docs/archive/2026-05/POLISH_2026-05-31_os-v2.2.md); cleave + workspace project-gather completed and verified by 2026-06-03 (docs/handoffs/SESSION_HANDOFF_2026-06-03_os-cleanup-campaign.md).
  • Overnight autonomous run 05-30 → 05-31: bug-hunt, UI polish, one polish-protocol round (docs/archive/2026-05/OVERNIGHT_2026-05-30_autonomous-run.md); studio-treatment polish + onboarding audit landed the same window.
  • Site audit 2026-06-01 (docs/archive/2026-06/SITE_AUDIT_2026-06-01/): feature-health audit + fix plan, body-link 404 audit + gate widening, a11y pass, round-2 billing / control-plane / relay reports, and the 0040/0041 migration runbook.
  • Walkthrough skill handoff (2026-06-02) and the OS-efficiency defers list (2026-06-03) recorded.

2026-05-28: Warp campaign Z closeout

Changed

  • Carved dashgen docs/legal and Setup graph emission out of bin/dashgen/__main__.py, preserving generated dashboard behavior.
  • Split Anthropic live-key validation and BYOK exception types out of anthropic_keys_store.py while preserving the existing module API.
  • Closed the wedge campaign with an off-wedge audit and scorecard re-rate in the existing campaign reference.

2026-05-28: Warp campaign Lane D finisher

Added

  • Voice and pricing drift guards now cover the seven locked anchors, the $12 Pro price, and retired Virtuoso / The Ensemble public positioning language.

2026-05-28: Warp campaign Lane C finisher

Added

  • Maestro now returns an optional publish nudge when a Setup visibly improves, pointing at the B1 SetupPack publish route.
  • Retention coverage proves a returning Maestro session reads enriched Setup context, improves it again, and remains publishable.
  • Carve-integrity coverage guards the Maestro/Setup path against god-file regression.

2026-05-28: Warp campaign Lane B finisher

Added

  • SetupPack install endpoint verifies pack integrity and dependencies, then re-enters the shared bootstrapSetup(source="installed_suite") path so installed Suites become normal Setup records.
  • Idempotent SetupPack install analytics record unique per-user installs without double-counting repeat installs.

2026-05-28: Warp campaign Lane A finisher

Added

  • Cold-account GitHub bootstrap E2E coverage proving Setup creation, populated Studio generation, sub-60-second mocked runtime, and repo-secret containment.

Changed

  • Aligned Lighthouse CI to current generated first-run routes and fixed homepage accessibility regressions in carousel navigation, filters, canvas cards, and small-link contrast.

2026-05-28: Codex queue reference

Added

  • docs/CODEX_QUEUE.md: end-to-end reference for the producer/consumer Codex work queue: enqueue flags and JSONL shape, dispatcher merge/dispatch phases, worktree isolation, scope-overlap rules, hard caps, CI gates, token-leak backstops, and queue states.

2026-05-27: Warp campaign Train 0 spine

Added

  • docs/grand-plan/WEDGE_INVARIANT.md: internal born/lives/travels Setup-loop contract, frozen off-wedge list, anti-spiral rule, and secrets invariant for spawned agents.
  • Setup contract + schema stub: SetupRecord/validateSetup() in cloudflare/worker/setup/types.ts, plus D1/Neon 0033_setups.sql migrations for the private per-user setups working-context table.
  • tests/test_wedge_guard.py: guard test for verbatim voice anchors, wedge invariant presence, Setup required fields, and setup migration shape.

Changed

  • Ratified the public slogan and seven voice anchors without changing their text, and pointed campaign agents at the wedge invariant as the single inheritance source.

2026-05-24: Vision lock

Deep strategy session relocked Endenza’s positioning, ambition framing, and voice. Three-tier brand architecture (creator / flagship / sibling) ratified; spatial-place metaphor (studio · door · neighborhood) confirmed as the connective tissue across surfaces; comparable shifted to Pieter Levels-style founder-as-studio portfolio (22 repos / 13 active / ~107 commits/day); ambition framed as Path A niche-banger with explicit Path B billion-swing optionality, gated on viral-demo signal. Music-vocabulary sibling arc locked (Prelude → Cadenza → Resonance → Echo). “Virtuoso” tier (retired 2026-05-05) and capital-E “The Ensemble” as a product brand (now retired) joined the words-to-avoid canon.

Locked canon docs: docs/VISION_RECAP_2026-05-24.md and docs/CANON_VOICE_ANCHORS.md (new: single source of truth for the seven voice anchors + words-to-avoid + three-tier voice register; referenced from BRAND_SYSTEM.md and STYLE_GUIDE.md).

Added

  • docs/CANON_VOICE_ANCHORS.md: seven voice anchors (identity tagline / promise triplet / hero h1 / duality framing / verb triplet / spatial vocabulary / music-arc) with the locked verbatim strings and DNA principle each carries. Words-to-avoid table with rationale. Three-tier voice register. Six-test audit for reviewing any public surface against the canon. Sister to CANON_SIGNAL_PHRASES.md (different scope: voice vs protocol).
  • docs/VISION_RECAP_2026-05-24.md: locked strategic vision (positioning, ambition, comparable, infrastructure shipped, A+ play sequencing).
  • docs/archive/2026-05/HANDOFF_2026-05-24_vision-propagation.md: Maestro-addressed handoff that drove this vision-lock propagation work.
  • PACE.md velocity baseline at ~/.claude/PACE.md: auto-regenerated nightly via bin/pace-regen.sh + launchd/com.endenza.pace-regen.plist.
  • time-calibration skill at plugins/endenza/skills/time-calibration/: anchors wall-clock estimates against PACE benchmarks.

Changed

  • 13 repo GH descriptions: flagship (endenza), all four user-facing siblings (endenza-prelude, endenza-resonance, endenza-echo, endenza-palette), three meta-tools (tool-builder, agent-builder, game-builder), and four orchestration-layer repos (ensemble-dashboard, ensemble-config, ensemble-phone, ensemble-desktop) plus the ensemble placeholder. Stale “The Ensemble” framing replaced; retired “Virtuoso” tier removed; empty descriptions filled; music-arc cross-references added to siblings; orchestration-layer repos flagged for pending endenza-* rename window.
  • agent-builder/README.md: hero, two inline references, lineage paragraph, and footer aligned with locked vision. Five surgical edits; internal code identifiers (virtuosos/ directory paths) preserved per BRAND_SYSTEM rule.
  • BRAND_SYSTEM.md + STYLE_GUIDE.md: surgical pointer sections added at the top of each, directing copy work to CANON_VOICE_ANCHORS.md.
  • Orchestrator CLAUDE.md + AGENTS.md: new ## Current vision section in each, pointing every chat opening this repo at the locked canon at system-message level.
  • Memory pins at ~/.claude/projects/-Users-kevin/memory/: three new pins (endenza_vision_recap_2026-05-24, endenza_three_tier_brand, endenza_portfolio_bet); MEMORY.md index gains a Vision lock: 2026-05-24 section; endenza_user_facing_pivot cross-refs updated.
  • tests/test_repo_brand_alignment.py WHITELIST: ensemble_map cohort telemetry surface added (pre-existing failure from 832f5ee3; lowercase use of the new spatial noun is the standard capital-in-copy / lowercase-in-identifier convention). Brand-alignment suite back to 15/15.

Deferred (follow-on items)

  • Creator-brand tier (T7): parked pending viral 60-second demo signal review.
  • ensemble-*endenza-* repo renames: needs coordinated webhook/CI/external-link change window.
  • Sibling-README music-arc + cross-ref additions for endenza-resonance, endenza-echo, endenza-palette, endenza-prelude, tool-builder, game-builder: can flow incrementally as each sibling gets touched.
  • Demo recording, “Make this room mine” button, celebrity-creator seed outreach: separate execution paths after the propagation lands.

2026-05-03: Endenza rebrand + canvas-comes-alive session

A marathon warp session spanning rebrand, living-things, performance, asset bundling, terminal polish, docs overhaul, and 14 test-pollution fixes. The platform moved from craft 6.5/fit 6.0 to craft 7.7/fit 6.9.

Added

  • Living-things runtime: canvas schema v6 adds an optional behavior field to components. The LivingThingsSimulator drives idle, wander, and patrol behaviors with deterministic seeding, reduced-motion respect, and IntersectionObserver pause when off-screen. Wire-in to studio renderRoom (e0316a4).
  • Real Mana Seed sprites: 35 Mana Seed Character Base sprites bundled into bin/dashgen/static/packs/ (body, hair, armor, tools, ambient) replacing placeholder procedural art (c884602).
  • Performance budgets: three new budgets added to bin/perf_audit.py and wired into the test suite: canvas-walk fps, character-creator first-paint, terminal hydrate latency (1016840, 15b929e).
  • Terminal layout customization: resize, reorder, and collapse for terminal tree bands; compact footer toolbar; compose pinned to bottom; skeleton bootstrap (3e17487, 28bce54, 616e034).
  • Per-request CSP nonce: unsafe-inline lifted from script-src; nonce injected per request; test coverage added (a803830).
  • Warp protocol toolchain: bin/warp_preflight.sh, bin/warp_salvage.sh, bin/warp_compliance_check.sh, bin/warp_quality_probe.sh, bin/warp_post_merge_verify.sh (0f7e41a). Incremental-commit policy added to MAESTRO Directive 22 (af5b8ba).

Changed

  • Endenza brand throughout (RN-α): ENSEMBLE_*ENDENZA_* for 20+ localStorage keys (with migration shim), plugins/ensemble/plugins/endenza/, user-visible strings swept across dashboard, terminal, cookie banner, settings, and warp widget (39b3168, 6a987d7, f86f062, 831b29d).
  • Single-logo across themes: brand mark no longer shifts between dark/light modes. Mac app icons regenerated for post-rebrand wordmark.
  • 39 stale docs archived: Phase 1 archival: POLISH_2026-05-0α/BETA, CODE_RATING, A_TIER_PLAN, BIG_HAUL_PLAN, FREEZE_TAG_PLAN, R14_PLAN, SIMPLIFICATION_PLAN, NAVIGATION_IA_PLAN, TERMINAL_PAGE_PLAN, and 28 others moved to docs/archive/ (6db14dc).
  • Docs restructured into purpose folders: Phase 2: docs/getting-started/, docs/architecture/, docs/operations/, docs/design/, docs/decisions/ created; 30+ docs moved via git mv (6bcd7c5).
  • Handler module split: control-panel-server.py decomposed into bin/handlers/ sub-modules (auth, studio, sprite, pack, settings, pair, SSE). Warp α+β.
  • BaseJsonStore extracted: StateStore, ChatStore, UserProfileStore all inherit atomic-write + flock base. Concurrent-write stress tests added. Warp β.

Fixed

  • Auth-key drift: DASHBOARD_TOKEN unified; /byok/link confirmed working after auth cascade repair.
  • Persistence: atomic writes with flock hardened; sprite/canvas/chat stores all on BaseJsonStore; dual-shape save for character creator landed.
  • Walk-cycle preview: 64× 64 preview + walk-cycle in character creator (CC slot B); body layer wired.
  • Terminal duplicate header: skip duplicate ENSEMBLE STATUS bar inside terminal tree (e60977c).
  • Terminal viewport: body set to flex-column; main fills viewport; no orphan bars (778343e).
  • 14 test-pollution issues: assertGreaterEqual for schema version assertions; stale ENSEMBLE_* keys swept; three pre-existing failures (test-pollution pattern) remain and are tracked in craft-debt ledger.
  • Perf budget errors: budget tests now gate cleanly; CI-local ruff added to warp_post_merge_verify.sh.
  • Terminal warm pair-CTA: warm Pair-CTA on any /state failure + offline pill demoted (616e034).

Documented

  • docs/decisions/LIVING_THINGS_PLAN_2026-05-03.md (since removed) : 4-phase living-things roadmap (L0–L5 behavior tiers, authoring, agent vocabulary, reactive/dialogue).
  • docs/decisions/POLISH_ROADMAP_2026-05-03.md (since removed) : four-tier polish roadmap with surface-by-surface craft×fit ratings and next-warp candidates.
  • docs/decisions/DOCS_OVERHAUL_PLAN_2026-05-03.md (since removed) : Option C doc overhaul: archival, restructure, rewrites, new docs, style guide.
  • docs/decisions/ASSET_AUDIT_2026-05-03.md (since removed) : purchased-pack audit + bundle proposal (35 Mana Seed + LimeZu sprites selected).
  • docs/operations/WARP_PROTOCOL_AUDIT_2026-05-03.md (since removed) : warp protocol polish audit; incremental-commit policy; cwd-drift + ps-ww workarounds.

Unreleased

v2.0 contract sweep: 2026-04-26

Eight new operating directives + three-layer autopilot mutex + Tier 1/2/3 hardening + SwiftBar menu bar indicator. No public API breaks; all additions are opt-in or backward-compatible defaults.

Added: eight directives:

  • Smart handoff protocol: self-monitor context (80% warn → 90% auto-stage → 95% hard-stop with paste-ready resume prompt). Memory: smart_handoff_protocol.md.
  • Turbo mode: liberal turbo signal phrase; AFK batch coding; auto-engages rapid-fire if off; safety gates still fire. Memory: turbo_mode.md + signal_phrase_detection.md.
  • Outside-the-box thinking (priority 1): operating posture for smarter problem-solving. Memory: outside_the_box_thinking.md.
  • Feedback pipeline: Sunday 6am aggregator + plan-then-approve gate for live products. Memory: feedback_pipeline.md.
  • Six-state lifecycle: Building → Launch Prep → Warmer ⇄ R&D ⇄ Updates → Hibernating. Replaces evolution_modes. Memory: project_states.md.
  • State enable/disable: verbal set <slug> to <state> + PWA dashboard pill.
  • Three-layer autopilot mutex: workshop lock + per-project spawn lock + opt-in resource floor + user-controlled max_concurrent_autopilots cap (default 2). Memory: hardware_constraints.md (renamed from hardware_m1.md).
  • Rapid-fire toggle: per-chat rapid_fire_enabled; OFF = prose mode. Every AskUserQuestion reserves slot 4 for Disable Rapid Fire Mode escape hatch. Memory: rapid_fire_toggle.md.

Added: Tier 1 hardening:

  • caffeinate -i wrap on claude -p (no-op on non-macOS). State: caffeinate_during_autopilot (default true).
  • Battery-state pre-flight via pmset. State: require_ac_power (default false, opt-in).
  • Disk-space pre-flight (df -g /). State: min_free_disk_gb (default 5).
  • Log rotation scheduled task (Sunday 5am, 30/60/90-day retention).

Added: Tier 2 hardening:

  • Network pre-flight (curl ping api.anthropic.com). State: require_network_check (default true).
  • Claude CLI version pin. State: min_claude_cli_version (default empty).
  • Memory link consistency checker in self_test.sh.

Added: Tier 3 hardening:

  • plugins/endenza/bin/resource_watchdog.sh: sidecar samples RAM/CPU during autopilot, kills tree on sustained pressure. State: resource_watchdog_enabled (default false, opt-in).
  • TROUBLESHOOTING.md §16-23 covering all v2.0 failure modes including state.json corruption recovery.

Added: three-layer mutex implementation:

  • plugins/endenza/bin/orchestrator_spawn_lock.sh (acquire/release/status/sweep/wrap, 285 lines).
  • plugins/endenza/bin/test_spawn_lock_race.sh (9-test race suite, all passing).
  • Companion bin-win/orchestrator_spawn_lock.ps1 Windows port.
  • state.json schema additions for the mutex layer.

Added: SwiftBar menu bar indicator:

  • plugins/endenza/integrations/swiftbar/endenza-autopilot.10s.sh: shows ☕ + active count when firing.
  • plugins/endenza/integrations/swiftbar/setup.sh: one-shot installer (brew + folder + symlink + relaunch).

Added: turbo session template:

  • plugins/endenza/templates/turbo_session.txt: paste-ready 60-min autonomous prompt.

Changed: operating contracts:

  • MAESTRO.md: 18 directives total. Directives 1, 2, 6 rewritten for three-layer mutex + state + lint. Directives 16, 17, 18 added (turbo / outside-box / feedback). Context-awareness subsection.
  • AGENT.md: 20 sections total. §3 lint-clean rule. §4.5 context awareness. §5 three-layer mutex. §17 six-state lifecycle. §18-20 turbo/outside-box/feedback.

Changed: schema migration:

  • chats/<slug>.json: evolution_modestate (auto-migrated for 7 chats).

Changed: dashboard:

  • Six-state pills, color-coded. Slugified CSS class names.

Changed: companion repos:

  • Lint configs synced to ensemble-config, ensemble-dashboard, website-agent-starter, ensemble-phone, ensemble-desktop.

De-personalization:

  • Bin scripts use ${HOME}/.claude/orchestrator. Bootstraps use ~/. Mobile docs scrubbed of personal email. Memory file rename hardware_m1.mdhardware_constraints.md.

Onepagers refreshed: top-level README.md, plugin README.md, public/index.html, public/dossier.html, CHEATSHEET.md.


[Pre-v2.0 Unreleased]

Polish + marketplace-readiness work since v1.0.0. No public API breaks.

Added

  • PWA wrapper for the public dashboard: manifest.json, service worker, EB-Garamond–themed icon. Installable to phone home screen with offline read-mode caching.
  • bin/setup-dashboard.sh: first-run productization script. Idempotently creates the user’s own <username>/ensemble-dashboard repo, enables Pages, generates DASHBOARD_TOKEN, registers Dashboard Update routine.
  • bin/control-panel-server.py + launchd plist: Mac-local Python http.server (port 8080, Tailscale-reachable) for interactive control: toggle active / mode / autopilot, fire autopilot, kill switch, embedded claude.ai/code chat iframe.
  • bin/fire-all-eligible.sh: serial-dispatch wrapper that fires <minutes>-min autopilot at every active+eligible project sequentially, respecting the test-bench lock.
  • bin/dashboard-generate.sh: emits styled HTML roster + per-project pages with timelines, plus shared style.css and control.js.
  • Per-project pages with vertical milestone timelines (45 milestones across 7 projects, Maestro-curated).
  • Spectra Nova onboarded as autopilot-eligible: local Mac clone, .NET 8 toolchain verified, 204 tests passing on first run.
  • /active <slug>, /inactive <slug>, /projects slash commands at ~/.claude/commands/.
  • /auto N alias for /autopilot N.
  • /rapid slash command: forces the next response into AskUserQuestion shape.
  • Skill catalog at plugins/endenza/skill_catalog.yaml + onboarding §5.5: auto-recommend useful skills during Agent setup.

Changed

  • Routine renames to Title Case: Morning Briefing, Evening Planning, Overnight Heavy, Workday Pulse, Dashboard Update, Rotation. AUTOMATION FIRE banners updated.
  • Dashboard timestamps now relative (“3 mins ago” via inline JS) instead of absolute UTC.
  • Dashboard cards show evolution-mode pills (Frozen / Reactive / Maintenance / Evolving).
  • Rapid-fire elevated to STAPLE protocol-level priority alongside autopilot lock and kill-switch cascade.

Fixed

  • Critical autopilot hang (5d489e0): claude -p --add-dir <dir> "$PROMPT" was eating the prompt as a directory because --add-dir is variadic. Added -- separator before the prompt. Every prior autopilot fire was silently doing nothing.
  • CI Linux switch (f289098): moved jobs from macos-latest to ubuntu-latest (10× cheaper): but auto-trigger disabled (d4132f6) until Kevin resolves GitHub Actions billing.
  • Routine prelude path (4 ~/.claude/scheduled-tasks/*/SKILL.md): fixed broken bin/routine_prelude.sh reference (script lives at plugins/endenza/bin/).
  • Email scrub (cc42158): kevinmadson3@gmail.comkevinmadson@protonmail.com in 4 doc occurrences across both repos.

1.0.0: 2026-04-25

The Ensemble’s first durable public-install-ready release. Phase 0 of docs/GRAND_PLAN.md substantively closed.

Mission gaps closed (per docs/decisions/MISSION_ROADMAP.md)

  • Gap 1: Lock-type semantics (17b6655) holder.json and state.json.lock_intent gain an intent field: "test" | "code" | "any". Test-intent locks contend (one chat owns the test bench at a time). Code-intent sessions skip the lock entirely (parallel coding across many chats). Any-intent (legacy) preserves pre-Gap-1 behavior. The pitch claim “Code in parallel. Test in single file.” is now architecturally true rather than aspirational.
  • Gap 2: Rotation scheduler (13bd4ac) New bin/rotation_pick.sh + Rotation scheduled task firing 23:30 / 01:30 / 04:30 local. Round-robin distributes overnight autopilot across all active+eligible projects, sorted by least-recently-fired (last_autopilot_fire_at).
  • Gap 3: Plan→Code→Test→Fix→Wrap loop template (ab39236) New plugins/endenza/templates/autopilot_loop.txt defines the canonical 5-phase autopilot session. autopilot_session.sh wires the template into both default + project-targeted prompts.
  • Gap 4: Per-project window prefs (b773b26) chats/<slug>.json carries optional preferred_windows + blocked_windows. rotation_pick.sh honors them.

Added

  • Plugin-refactor (38206d6): 20 commits merged into main. Plugin-shaped layout for marketplace distribution.
  • Phone-triggered autopilot pipeline: Termius + Tailscale → SSH → launchd agent in user’s Aqua session → Keychain access → autopilot_session.sh. Project-targeted via 4th positional arg.
  • /autopilot N slash command: cwd-aware project detection via bin/detect-project.sh.
  • Atomic kill-switch sweep: bin/mobile_dispatch.sh kill now sweeps the full process tree (parent bash + GNU timeout wrapper + claude -p grandchild) plus SIGKILL stragglers.
  • bin/notify.sh: multi-channel notifier (macOS osascript + Pushover via .env.local).
  • bin/maestro-context.sh: auto-aggregates lock state, chat roster, autopilot runs, 24-hour commits at first turn.
  • bin/morning-digest.sh: EB-Garamond–styled HTML cross-project briefing.
  • Friend-facing website-agent v2 (917ff66, f067b89): lifecycle-aware bootstrap with 10 phase gates G0→G9, resume protocol, full GitHub-security weave (2FA + SSH + .gitignore + Dependabot + secret scanning + push protection + CodeQL + HTTPS enforce).
  • Cross-platform parity layer (KiwiMaddog2020/ensemble-config): bin-mac/bin-win/ matrix, PARITY.md tracks Windows ports.
  • Active/inactive control: chats/<slug>.json::active field + verbal command pattern + slash commands.
  • Evolution mode: 4-mode taxonomy (frozen / reactive / maintenance / active) per project, surfaced at G9.
  • Voice-friendly numbering on every AskUserQuestion label (1. 2. 3. 4.).
  • Flow continuity rule: never offer “pause” / “stop” / “sleep on it” as options; user dictates cadence.

Changed

  • Push rails lifted (8f01f01): git push to origin on current branch is permitted without per-turn approval. Destructive ops, store submissions, deploys beyond GitHub Pages, public-flips, and billing remain gated.
  • Batched-approval discipline strengthened: bundle units as wide as defensible at the decision point; in-flight execution skips per-step asks; decision points still always fire AskUserQuestion.

Documentation

  • docs/GRAND_PLAN.md v0.3: three-tier taxonomy (Maestro / Virtuoso / Agent), product ladder (Phase 0 → 1 → 2 → 3).
  • docs/decisions/MISSION_ROADMAP.md: 5-gap audit + sequencing.
  • docs/CONTROL_PANEL_PLAN.md: interactive Ensemble GUI architecture.
  • docs/architecture/AUTOPILOT_DESIGN.md: full pipeline design.
  • docs/design/UX_STREAMLINING.md: 12 prioritized opportunities for “input-disappearing” UX.
  • docs/architecture/OPUS_OPTIMIZATION.md: seven rules for operating Claude Opus 4.7 inside the Ensemble.

Phase 0 exit criteria

  • ✅ Plugin-refactor merged
  • /autopilot N slash command built
  • ✅ Mobile dispatch pilot validated
  • ✅ v1.0.0 tagged
  • ⏳ First external user onboarded (friend with website-agent v2: package staged, awaiting hand-off)
  • ⏳ Repo public-flip (deferred until Claude skill marketplace publication)

Pre-1.0.0 history

Earlier development (plugin-refactor branch + initial Ensemble bootstrapping) is captured in the git log. Highlights:

  • 2026-04-21: System named The Ensemble. Atomic mkdir lock primitive proven on APFS. PreToolUse hook with hard-enforcement matcher. Distributed kill-switch with idempotent six-phase cascade.
  • 2026-04-22: Three-tier taxonomy locked (Maestro / Virtuoso / Agent). Plugin layout drafted.
  • 2026-04-23: Plugin-refactor merged → main. v0.x development closed.