Skip to content

Releases: AnalogElk/muster

Muster v0.1.5

Choose a tag to compare

@mikewalliser mikewalliser released this 17 Jul 04:48
054362e

Muster v0.1.5 — the demo becomes a full platform

Added

  • Full demo population (#23): every section of the live demo (app.musterr.dev) now renders as a real, busy agency: CRM (15 deals, 33 activities, 12 proposals), finance (33 invoices with line items and payments, 30 expenses, subscriptions), delivery (deliverables, project updates, sprint snapshots), comms (message threads, notifications, client tickets), analytics ledgers (os_ai_commits, os_web_vitals, os_interactions), DAM (7 dam_* collections, 30 assets, brand books), 6 fictional team members with avatars, org logos, and a client demo login (client@muster.dev / muster-demo).
  • Mock integration service (mocks/): Matomo-shaped and Migadu-shaped APIs with deterministic data so analytics charts and the client email panel render live-looking numbers with zero real keys.
  • Seed toolkit (provision/seed-full/, 64 idempotent scripts): the full demo dataset is reproducible from provisioning (board task 70100ce7).
  • Daily demo refresh (provision/demo-refresh/): cron keeping perishable analytics/insight/infra snapshot rows alive.

Changed

  • prepare-context.sh 6d fix pack: portal CSP now derives the Directus origin from NEXT_PUBLIC_DIRECTUS_URL (CMS-hosted logos/photos were blocked by the baked img-src), env-overridable MIGADU_API_BASE, three frozen-build rendering fixes, dev-only screenshot-preview routes excluded from the build.

Verification

Adversarially verified by a multi-agent panel against authenticated screenshots of all 41 portal sections under both demo logins: 41/41 populated, zero empty, error, or env-gated states.

Deploy notes

The demo box runs image elk-os/portal:run2-csp2 (built natively amd64 on-box); previous image retained as rollback. Release hand-cut per the release-please workflow header recipe (RELEASE_PLEASE_TOKEN gap: board task a1bce112).

Muster v0.1.4

Choose a tag to compare

@mikewalliser mikewalliser released this 16 Jul 04:11
31df9dc

Muster becomes an installable Claude Code plugin, and the homepage becomes a product page.

Added

  • plugin: Muster is now an installable Claude Code plugin (#19). Two commands from a clean machine: /plugin marketplace add AnalogElk/muster then /plugin install muster@muster. Ships four commands (/muster:connect, /muster:board, /muster:up, /muster:doctor), the muster-protocol skill (claim, work, verify, close), a SessionStart board snapshot hook, and an MCP server wired to the live demo board by default, so /muster:connect needs zero arguments. The install and the no-Docker loop proof were verified empirically on Claude Code 2.1.211 and recorded in docs/plugin-install-verified.md.
  • site: the homepage now leads with why, not how (#20). It names the problem (agents forget between sessions, clobber each other in parallel, and leave no durable answer to "what's done"), gives the verified two-command install, shows the live board, and states the honest catch: it does not make the model smarter, there is a real token premium, and your own stack needs Docker while the demo needs none. The 2.5-hour build log moved intact to /about; the whitepaper stays at /paper.html.

Fixed

  • caddy: app.musterr.dev root now redirects to /login instead of serving the portal image's marketing page (#18).

Full changelog: v0.1.3...v0.1.4

Muster v0.1.3 — the intelligent layer, live and checkable

Choose a tag to compare

@mikewalliser mikewalliser released this 15 Jul 18:29
0b6b4cb

The release that puts the intelligent layer in front of the public, and then audits every claim the project makes about itself.

Live: musterr.dev (landing + whitepaper) · app.musterr.dev (portal, read-only demo login demo@muster.dev / muster-demo)

Added

  • The intelligent layer ships in the demo (#12, #13). A local RAG engine (FastAPI + Postgres + Qdrant + Redis, fastembed running BAAI/bge-small-en-v1.5 on CPU) plus Elk Chat, the in-portal assistant, wired to the portal over the internal elkos-rag network via compose.portal.rag.yaml (ELK_OS_WITH_INTELLIGENCE, default true). Embeddings are local and keyless: no API key, no quota, no document text leaving the box.
    • The load-bearing design decision: the engine is an untrusted ranking oracle. It indexes gated and unpublished pages, so kb_search uses /query only to rank candidate slugs, then re-fetches every candidate through Directus under the caller's own token and re-gates it with buildPageFilter. Retrieval ranks; permissions decide.
    • Hardening: constant-time X-API-Key check on /query//stats/ingest, a fail-closed startup guard (a non-development engine refuses to boot without a key), /docs+/redoc+/openapi.json disabled outside development, a Redis fixed-window rate limiter (default 300/min), and orphaned-vector reconciliation across both stores.
  • Assistant generation is now configurable on the self-host stack (#15). ANTHROPIC_API_KEY and ASSISTANT_MODEL pass through .env to the portal container. Previously both were documented but reached nothing.
  • Privacy-respecting analytics (#9, #10, #11). Self-hosted Matomo, first-party, IP-anonymized, and skipped entirely for browsers sending Global Privacy Control, disclosed on a public privacy page.

Changed

  • A full currency audit of every public claim (#15), run as a six-agent fan-out against the code and the live deployment, then adversarially verified. The corrections are the interesting part:
    • The whitepaper claimed SSE streaming for Elk Chat. The shipped route is a blocking JSON POST with per-user rate limiting. Claim removed.
    • The README claimed the RAG engine had no published ports. Every target publishes it on loopback (127.0.0.1:19100), and doctor depends on that. Now stated precisely.
    • "An orphaned vector can never answer" was too absolute: the engine's one-hour query cache can serve a pre-delete answer. The caveat is now in the text.
    • Stale comments corrected across compose.rag.prod.yaml ("the portal does NOT consume the RAG API" — it does), .env.example, and the release-please workflow (#16).
  • README: badges, a live-board hero, a six-command quickstart that matches the site and the paper, a "why not just a plain Claude Code session?" comparison, and logs/rebuild-portal documented.
  • Whitepaper: a dated 2026-07-14 postscript covering what is now checkable from a browser, including an honest correction that the demo box currently runs always-on rather than duty-cycled.

Fixed

  • Dead LICENSE-RECOMMENDATION.md link in the changelog, the dead 34.220.64.149.sslip.io homepage on the GitHub About block, and a paper.html footer that loaded an analytics beacon without linking the privacy disclosure.

Verified live for this release

  • musterr.dev, /paper.html, /privacy.html and the og image are byte-identical to site/ in this tag, on real Let's Encrypt TLS; the Directus Studio stays unexposed (302 to apex).
  • The demo login is read-only: reads on os_tasks return 200; create, update, and delete all return 403 permission-denied.

Known gaps, stated plainly

  • GHCR packages are private, so ELK_OS_USE_PUBLISHED_IMAGES=true currently needs a docker login ghcr.io; the published portal tag predates the intelligent layer, so build locally for the current pin.
  • release-please cannot open its own PR under the enterprise policy (the org forces the Actions token read-only), so releases including this one are cut by hand from the branch it computes. The recipe is documented in the workflow header; the fix is a RELEASE_PLEASE_TOKEN PAT.

Full diff: v0.1.2...v0.1.3

Muster v0.1.2

Choose a tag to compare

@mikewalliser mikewalliser released this 02 Jul 21:05
d455b80

0.1.2 (2026-07-02)

Added

  • site: copy sweep + musterr.dev cutover (#6) (efe4d3c)

Muster v0.1.1

Choose a tag to compare

@mikewalliser mikewalliser released this 02 Jul 19:53
32d500a

0.1.1 (2026-07-02)

Fixed

  • self-optimize refine pass (correctness, security, docs, copy) (#3) (ca2c46f)

Muster v0.1.0 — the system that built itself

Choose a tag to compare

@mikewalliser mikewalliser released this 01 Jul 01:47

Muster is the operating system for agentic software teams — a self-hostable agency OS (Claude-side governance + a Directus os_* task bus + a local RAG engine + a Next.js portal) that built and shipped itself in ~2.5 hours.

In this cut (P0–P7)

  • One-command installer — bin/elk-os (init · up · migrate · seed · wire · doctor), Docker the only hard dep
  • Compose core: Postgres + Directus 11 + the RAG engine + the portal, behind Caddy/TLS
  • Pruned, generic-safe os_* schema + profiles (generic | analogelk)
  • The Claude-side OS: a written constitution, native Directus MCP wiring, hooks, memory
  • Deploy blueprints (box / Render / Fly / Railway / Netlify)

Live

  • Whitepaper + one-click read-only demo: https://34.220.64.149.sslip.io
  • The demo board shows the actual tasks that built it (the recursion, on purpose)

Notes

CI automation (release-please / GHCR publish) is pending an org Actions-permissions change; releases are cut manually until then. Full story in WHITEPAPER-LOG.md + docs/whitepaper/.