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_eventsdataset,{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-runlocked by offline pytest coverage.
Changed
pages/settings_body.py4,929L → 145L assembler over a 23-modulepages/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_BODYstring and builtsettings.htmlmatch the pre-split baseline exactly).widgets/terminal_center.py3,537L → 12-fragment package (A3): prelude / helpers / renderers / shell / empty-states / controller fragments concatenated under the widgets IIFE bookend rule (theWIDGET_DASH_JSpeer-module pattern); import path and symbol unchanged; emittedterminal-center.jsbyte-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/andinfra/in the entry docs: README repo map (+ test counts refreshed to 7,000+ Python / 1,193 JS),CLAUDE.mdMain Surfaces,docs/README.mdindex, anddocs/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-planCHUNK_*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.tld→endenza.appacross non-archive docs. - Dropped the ghost
/blueprint.htmlnode (page removed 2026-05-22 R6) from the Atlas architecture data + embedded static mirrors; federation docs annotated as retired stumps (deadtool-builder/agent-buildercross-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.mdtrust-boundary table gains the/v1/runner/relayWebSocket row (session-or-runner-token, per-user Durable Object, runner outbound-only).- Stale provenance in code comments and scripts:
rotate_secret.shBYOK master-key guidance aligned withSECRET_ROTATION.md,upgrade.shrollback message points at the real backup/restore path,settings_body.pycomments/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.jsbundle (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.htmlbridge. dashboard.jsnow 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 toCOOKIE_DOMAINwith 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.pywhile 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 Ensemblepublic 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()incloudflare/worker/setup/types.ts, plus D1/Neon0033_setups.sqlmigrations for the private per-usersetupsworking-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 toCANON_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 viabin/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 theensembleplaceholder. Stale “The Ensemble” framing replaced; retired “Virtuoso” tier removed; empty descriptions filled; music-arc cross-references added to siblings; orchestration-layer repos flagged for pendingendenza-*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 toCANON_VOICE_ANCHORS.md.- Orchestrator
CLAUDE.md+AGENTS.md: new## Current visionsection 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 aVision lock: 2026-05-24section;endenza_user_facing_pivotcross-refs updated. tests/test_repo_brand_alignment.pyWHITELIST:ensemble_mapcohort telemetry surface added (pre-existing failure from832f5ee3; 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
behaviorfield to components. TheLivingThingsSimulatordrives idle, wander, and patrol behaviors with deterministic seeding, reduced-motion respect, andIntersectionObserverpause when off-screen. Wire-in tostudio 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.pyand 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-inlinelifted fromscript-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 viagit mv(6bcd7c5). - Handler module split:
control-panel-server.pydecomposed intobin/handlers/sub-modules (auth, studio, sprite, pack, settings, pair, SSE). Warp α+β. - BaseJsonStore extracted:
StateStore,ChatStore,UserProfileStoreall inherit atomic-write + flock base. Concurrent-write stress tests added. Warp β.
Fixed
- Auth-key drift:
DASHBOARD_TOKENunified;/byok/linkconfirmed working after auth cascade repair. - Persistence: atomic writes with
flockhardened; sprite/canvas/chat stores all onBaseJsonStore; 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 STATUSbar inside terminal tree (e60977c). - Terminal viewport: body set to flex-column; main fills viewport; no orphan bars
(
778343e). - 14 test-pollution issues:
assertGreaterEqualfor schema version assertions; staleENSEMBLE_*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
/statefailure + 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
turbosignal 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_autopilotscap (default 2). Memory:hardware_constraints.md(renamed fromhardware_m1.md). - Rapid-fire toggle: per-chat
rapid_fire_enabled; OFF = prose mode. EveryAskUserQuestionreserves slot 4 forDisable Rapid Fire Modeescape hatch. Memory:rapid_fire_toggle.md.
Added: Tier 1 hardening:
caffeinate -iwrap onclaude -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.ps1Windows port. state.jsonschema 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_mode→state(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 renamehardware_m1.md→hardware_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-dashboardrepo, enables Pages, generatesDASHBOARD_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, embeddedclaude.ai/codechat 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>,/projectsslash commands at~/.claude/commands/./auto Nalias for/autopilot N./rapidslash 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-diris variadic. Added--separator before the prompt. Every prior autopilot fire was silently doing nothing. - CI Linux switch (
f289098): moved jobs frommacos-latesttoubuntu-latest(10× cheaper): but auto-trigger disabled (d4132f6) until Kevin resolves GitHub Actions billing. - Routine prelude path (4
~/.claude/scheduled-tasks/*/SKILL.md): fixed brokenbin/routine_prelude.shreference (script lives atplugins/endenza/bin/). - Email scrub (
cc42158):kevinmadson3@gmail.com→kevinmadson@protonmail.comin 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.jsonandstate.json.lock_intentgain anintentfield:"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) Newbin/rotation_pick.sh+Rotationscheduled 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) Newplugins/endenza/templates/autopilot_loop.txtdefines the canonical 5-phase autopilot session.autopilot_session.shwires the template into both default + project-targeted prompts. - Gap 4: Per-project window prefs (
b773b26)chats/<slug>.jsoncarries optionalpreferred_windows+blocked_windows.rotation_pick.shhonors them.
Added
- Plugin-refactor (
38206d6): 20 commits merged intomain. 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 Nslash command: cwd-aware project detection viabin/detect-project.sh.- Atomic kill-switch sweep:
bin/mobile_dispatch.sh killnow sweeps the full process tree (parent bash + GNUtimeoutwrapper +claude -pgrandchild) 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.mdtracks Windows ports. - Active/inactive control:
chats/<slug>.json::activefield + verbal command pattern + slash commands. - Evolution mode: 4-mode taxonomy (
frozen/reactive/maintenance/active) per project, surfaced at G9. - Voice-friendly numbering on every
AskUserQuestionlabel (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 pushto 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.mdv0.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 Nslash 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.