Skip to content

Releases: Samuel0101010/wisp-orchestrator

v2.7.1 - installs everywhere: plain-HTTPS plugin clone

Choose a tag to compare

@Samuel0101010 Samuel0101010 released this 12 Jun 17:15
v2.7.1
fec2399

A fresh machine without a GitHub SSH key could not install WISP: the marketplace's github source type resolved to an SSH clone, and Claude Code's suppressed SSH prompts turned the missing known_hosts entry into a hard failure:

No ED25519 host key is known for github.com and you have requested strict checking.
Host key verification failed.

v2.7.1 makes the install path pure HTTPS — no GitHub account, no SSH key, no git config required.

Fixed

  • claude plugin install wisp@wisp-local no longer touches SSH. The plugin source in marketplace.json is now an explicit HTTPS URL ({ "source": "url", "url": "https://github.com/Samuel0101010/wisp-orchestrator.git" }), forcing the plain-HTTPS clone path on every machine (PR #112).

Changed

  • Install docs (README, getting-started, troubleshooting) now add the marketplace via the explicit HTTPS URL; the one-time insteadOf SSH shim is demoted from prerequisite to troubleshooting fallback; the troubleshooting guide covers both SSH failure modes (Permission denied (publickey) and Host key verification failed).

Install (60 seconds)

claude plugin marketplace add https://github.com/Samuel0101010/wisp-orchestrator.git
claude plugin install wisp@wisp-local
claude /wisp-dashboard

Already hit the SSH error?

Your machine cached the old marketplace entry. Refresh it once:

claude plugin marketplace remove wisp-local
claude plugin marketplace add https://github.com/Samuel0101010/wisp-orchestrator.git
claude plugin install wisp@wisp-local

Verification

  • claude plugin validate clean (source-type url confirmed against the official plugin-marketplaces schema)
  • CI verify + e2e green on main; fresh marketplace remove → add → install smoke test against the published repo
  • Secret scan over the working tree and full git history: no keys, tokens, private emails, or personal paths — safe to install for everyone

v2.7.0 - skilled agents, specs that travel, a chat that heals

Choose a tag to compare

@Samuel0101010 Samuel0101010 released this 11 Jun 18:02
v2.7.0
10b3967

Execution agents now carry working methods (skills) in their instructions — the lever that keeps smaller models reliable. A spec attached in the team chat becomes the project brief with one manager action. And a transient auth hiccup at boot no longer bricks chat and runs until restart.

Highlights

Skilled agents (works better with smaller models)

  • Teams assign skills per role (new picker in the Team Builder); the orchestrator renders each skill's instructions into that agent's system prompt at dispatch. Until now skills only existed for the chat manager — builder/QA agents never saw any.
  • Three new built-in execution skills: builder-discipline (read before write, smallest correct change, run the gates before claiming done), qa-verification (execute, don't assume; evidence per claim), frontend-quality (states, responsiveness, accessibility, consistency).
  • Every surface that creates a team — all 10 templates, the default team, chat project creation, the add-built-in-agent flow — assigns sensible defaults by role (QA roles get qa-verification, frontend builders get builder-discipline + frontend-quality, …).
  • Plan generation re-stamps skills from the stored team, so no planner model can ever drop them.
  • Bonus: the merge-conflict resolver now receives the project brief context instead of resolving conflicts blind.

Specs that travel: import_brief

  • File upload in the team chat already worked — but the attached spec never reached the build agents. Now the manager can write an uploaded .md/.txt spec verbatim to docs/PRD.md and finalise the brief right after create_project (taught in its prompt; receipt card in chat). The crew builds from the full spec, not a one-line goal.

A chat that heals

  • A boot-time auth probe timeout (busy machine) used to 503-block chat and runs until the next restart. All four gates now re-probe on a cached failure (throttled to once per minute, shared in-flight) and self-heal — the warning banner clears on its own.

From PR #110

  • The live-tail dialog restores a finished task's output from the persisted run log after a page reload.
  • Chat links to deleted projects degrade to a plain "project has since been deleted" note instead of a 404.

Verification

End-to-end live proof of the full story: spec attached in chat → manager quoted a secret marker from the file (proving it reads uploads) → create_projectimport_brief (PRD verbatim on disk, brief 100%, committed) → plan carried each role's skills → real run: the spawned CLI processes were probed mid-run and showed ### Skill: builder-discipline + frontend-quality (sonnet builder) and ### Skill: qa-verification (haiku QA) in their prompts → release gate READY, auto-merge, finished app matching the spec including edge-case evidence screenshots. Gates: 8/8 local (698 server / 241 web / 169 orchestrator / 71 schemas tests, +28 new), e2e 54/54, CI green on PR #111 and main.

Install / Update

claude plugin marketplace add Samuel0101010/wisp-orchestrator
claude plugin install wisp@wisp-orchestrator

v2.6.1 — chat pipeline unblocked, honest release gate, responsive everywhere

Choose a tag to compare

@Samuel0101010 Samuel0101010 released this 11 Jun 14:58
v2.6.1
c88d776

Creating a project through the team chat works again on machines with large skill collections, the release gate tells you when (and why) it held a merge back, bare-HTML projects finally preview, and no pane overlaps another at any window width.

Highlights

Chat pipeline unblocked (Windows)

  • Large system prompts (the manager's skill appendix grows with every installed skill) exceeded the 32,767-char Windows command-line limit and killed every manager turn instantly with spawn ENAMETOOLONG. Prompts over 8k chars now reach the CLI via --system-prompt-file — this also protects the planner and every task agent.
  • The skill appendix is capped at 6k chars (seed/project/plugin sources first) — saving ~13k tokens per manager turn on skill-heavy machines.
  • The manager no longer re-issues directives it already executed: conversation history (and the compress summary) carries receipts of executed directives. Previously the model only saw its own prose, concluded create_project never ran, and created the project twice.
  • Malformed manager actions surface as a warning chip instead of vanishing silently.

Honest release gate

  • The gate's actual decision and reasons are now persisted (migration 0021) and shown on the release-gate card — no more "READY" badge while auto-merge silently held the code back.
  • When the runtime verifier passes every check but forgets to attribute the DoD criteria, the run ships with a manual-review flag instead of stranding the finished app on its result branch. The verifier prompt now demands per-criterion attribution.

Static-site preview

  • Chat-created "no build tool" projects (a bare index.html, no framework) are served by a bundled zero-dependency static server — the preview pane shows your app instead of claiming there is nothing to run.

Responsive everywhere (PR #108)

  • Side rails gate one breakpoint later so three-pane layouts (Focusboard, Chat, Plan Editor) no longer crush the middle pane at ~1024px; panes clip instead of bleeding under neighbors; headers wrap; the project tab list scrolls. Verified: 0 overflow on 18 pages at 640/1024/1366px.

Verification

End-to-end live proof on a real project: chat → create_project (repo + git init) → async generate_planstart_run → release gate READY with DoD 1/1 → auto-merge to main → working static preview. Gates: 8/8 local (683 server / 239 web / 165 orchestrator tests, +21 new), e2e 54/54, CI green on PR #109 and main. Migration 0021 verified against a production DB.

Install / Update

claude plugin marketplace add Samuel0101010/wisp-orchestrator
claude plugin install wisp@wisp-orchestrator

Existing installs: claude plugin update wisp (the dashboard rebuilds on next launch; migration 0021 applies automatically).

🤖 Generated with Claude Code

v2.6.0 — built for non-developers

Choose a tag to compare

@Samuel0101010 Samuel0101010 released this 10 Jun 17:20
v2.6.0
df42eb0

v2.6.0 — built for non-developers

The path from idea to finished app no longer assumes you know what a repository is. Paths fill themselves in, success has a clear moment, the UI speaks plain language, and the preview recovers gracefully.

What's new

  • Repo paths fill themselves in. Both new-project dialogs suggest ~/wisp-projects/<name> as you type the project name; the first manual edit takes over. Plain-language helper text replaces /absolute/path/to/repo.
  • "Deine App ist fertig." A success card on the run view: web apps get a one-click "View your app — open preview" button, desktop apps point to the build card, and everyone sees where their files live and how to ask the chat for next steps.
  • Plain language everywhere it hurt. "Plan fixieren & starten" instead of lock jargon, no more "git worktrees" in the setup dialog, one-line explainers on DoD and release gate, example placeholders on budget fields. Skipped release gates no longer show alarming FAIL rows.
  • The preview recovers gracefully. A crashed dev server is detected the moment it exits and reported in plain language; the element picker builds robust selectors (data-testid > id > unique aria-label > class-free paths) instead of fragile Tailwind hash classes.

Update (existing install)

/plugin marketplace remove wisp-local
/plugin marketplace add Samuel0101010/wisp-orchestrator
/plugin install wisp@wisp-local

Then /wisp-dashboard. The version chip reads v2.6.0. (If you see Permission denied (publickey), run once: git config --global "url.https://github.com/.insteadOf" "git@github.com:".)

Verification

All 8 local gates green; server (671) + web (239) unit tests; full e2e 54/54; CI green on PR and main. Verified live in a real browser: prefill behavior in both dialogs (including the manual-edit override), the success card with a working preview deep-link, the plain-language strings, zero console errors — with dark + light screenshots of the dialog and the run page.

🤖 Generated with Claude Code

v2.5.0 — efficient crews, honest gates

Choose a tag to compare

@Samuel0101010 Samuel0101010 released this 10 Jun 16:38
v2.5.0
f6eed03

v2.5.0 — efficient crews, honest gates

No wasted tokens, and quality loops that work like a real team's: budgets are enforced before work starts, context goes only where it's needed, the harness verifies the app actually boots instead of trusting a report, and validation runs on the cheapest capable model.

What's new

  • Budgets gate dispatch. The walker checks time/turns/token budgets BEFORE launching a task — a run can no longer start new work past its cap and overshoot it mid-task.
  • Dependency-scoped handoffs. Each task receives only the handoffs of its transitive dependency chain (10 most recent) instead of a global broadcast — read fresh at dispatch, so same-run handoffs finally reach downstream tasks.
  • Harness boot check (trust-but-verify). With runtime verification enabled, the harness itself boots the result-branch code in a dedicated worktree and probes HTTP before the release gate. A non-booting app blocks the release even when the verifier's report passes; harness-side problems skip, never block.
  • Self-healing plateau detection. A hardening iteration that closes zero findings stops the chain early with a clear reason instead of silently burning iterations.
  • Replanning covers builder failures. Build/test verification failures of developer roles trigger the same bounded replan loop as QA failures (lint-only or infra errors never do).
  • QA runs on Haiku. Seed, refresh upgrade, self-healing team, and default plan team — validation at a fraction of the cost.
  • Shared-memory protocol. Every agent prompt teaches the crew to read and record project decisions/patterns via the per-project memory, so later tasks reuse earlier findings.

Update (existing install)

/plugin marketplace remove wisp-local
/plugin marketplace add Samuel0101010/wisp-orchestrator
/plugin install wisp@wisp-local

Then /wisp-dashboard. The version chip reads v2.5.0. (If you see Permission denied (publickey), run once: git config --global "url.https://github.com/.insteadOf" "git@github.com:".)

Verification

All 8 local gates green; server (664) + orchestrator (162) + web (211) unit tests; full e2e 54/54; CI green on PR and main. Two adversarial review passes executed the gates and a live mock-mode end-to-end probe (QA task verified live on executorModel=haiku, boot-check skip path verified); 9 findings fixed pre-merge, including a mis-specified memory tool name and a replan false-positive on lint failures.

🤖 Generated with Claude Code

v2.4.0 — runs build on the existing app

Choose a tag to compare

@Samuel0101010 Samuel0101010 released this 10 Jun 15:17
v2.4.0
7942b0a

v2.4.0 — runs build on the existing app

Run 2 must not rebuild what run 1 shipped. With this release the planner and every executing agent know the code that already exists, iterating is one robust action instead of three fragile steps, and two crews can no longer race the same repository.

What's new

  • The planner sees your repository. Every plan on a non-empty repo includes the file tree, architecture.md, and the previous plan's task list, with an explicit "plan changes ON TOP of this code" instruction — initial plans, iterations, and QA replans alike.
  • Agents see the codebase. Every agent prompt carries a compact "Existing codebase" section ("MODIFY the existing code; do NOT scaffold a new project") plus a fuller .wisp/repo-map.md in the worktree — no more re-discovering the repo on every task.
  • One-call iteration. POST /api/projects/:id/iterations plans, locks, starts, and links your change requests server-side, with real rollback: a failed plan leaves nothing behind; a failed run start keeps your change requests queued. The dashboard's "Run Iteration" now uses this single call.
  • Concurrent runs are blocked. A per-project guard (409 run_already_active) prevents two crews from building and merging the same repository at once.
  • Robustness: verified runs without docs/project-state.md no longer block future iterations; repository file names can't break the prompt's fenced tree block; Insights keeps a single h1 per page (a11y + flaky-test fix).

Update (existing install)

/plugin marketplace remove wisp-local
/plugin marketplace add Samuel0101010/wisp-orchestrator
/plugin install wisp@wisp-local

Then /wisp-dashboard. The version chip reads v2.4.0. (If you see Permission denied (publickey), run once: git config --global "url.https://github.com/.insteadOf" "git@github.com:".)

Verification

All 8 local gates green; server (636) + web (211) + orchestrator unit tests; full e2e 54/54 green; CI (verify + e2e) green on the PR and on main. Built subagent-driven with adversarial reviews that executed the gates and ran live experiments (git worktree exclude semantics, hostile-filename fence escape — found and fixed, concurrency race — found and guarded), plus a live mock-mode end-to-end check of the new iteration endpoint.

🤖 Generated with Claude Code

v2.3.0 — the team you pick is the team that builds

Choose a tag to compare

@Samuel0101010 Samuel0101010 released this 10 Jun 00:49
v2.3.0
7976f69

v2.3.0 — the team you pick is the team that builds

You assemble a team of agents — so that exact team, with the exact prompts and models you chose, must be what executes the plan. A full code audit found the chain broke at several hops (a planner-invented role could silently execute, the QA-replan loop never fired for real team roles, system-injected nodes were invisible). This release welds the chain shut and makes every actor visible.

What's new

  • Hard role validation. Plan generation validates every role against your stored team. If the planner invents a role it gets one corrective retry, then a clear "the planner used roles that are not in your team" error — a made-up agent can never silently execute again.
  • Plan tampering is closed. Editing or locking a plan now re-normalizes it against your stored team: your specs win by role name, system roles are restored to their canonical server specs, unknown roles are rejected. A modified system prompt or tool list can't reach the agent launcher.
  • You see who really ran each task. Every task card shows "Ausgeführt von … (Modell)" — the actual agent and effective model (project overrides visible) recorded at dispatch time.
  • System badges. Harness-injected helpers (wire-up, runtime-verifier, lead) are clearly badged with a plain-language tooltip in the plan editor and run view — your tasks vs. system tasks at a glance. The planner can't spoof the badge.
  • The QA quality loop actually runs. QA-driven replanning only fired for a role literally named qa — real teams use qa-engineer. Fixed with token-based matching.
  • Human task titles. Tasks are named ("Set up the data model") instead of raw node ids.

Update (existing install)

/plugin marketplace remove wisp-local
/plugin marketplace add Samuel0101010/wisp-orchestrator
/plugin install wisp@wisp-local

Then /wisp-dashboard. The version chip reads v2.3.0. (If you see Permission denied (publickey), run once: git config --global "url.https://github.com/.insteadOf" "git@github.com:".)

Verification

All 8 local gates green; server (591) + web (205) + orchestrator (138) + schemas (65) unit tests; e2e green; CI (verify + e2e) green on the PR and on main. Built subagent-driven: 3 file-disjoint lanes → 2 adversarial reviewers who found and blocked on 6 real defects (including a plan-tampering bypass and an off-by-one in the retry budget) before anything was committed → live browser verification with dark + light screenshots.

🤖 Generated with Claude Code

v2.2.4 — the project brief now works end to end

Choose a tag to compare

@Samuel0101010 Samuel0101010 released this 08 Jun 04:55
v2.2.4
e562f93

v2.2.4 — the project brief now works end to end

The project brief is what turns a rough goal into a real plan. It has to be obvious for a first-time user, and it has to actually reach the parts of the system that plan and build. A full code trace found gaps on both fronts — this release closes them.

What's new

  • Import an existing plan as the brief. Paste markdown or upload a .md file, see a live preview, and submit — it's written verbatim to docs/PRD.md and the brief is finalised. No retyping a spec into the chat.
  • The brief is clearly the required first step — but still one click away. It was required before plan generation, yet the UI called it "optional" three times. The wording now matches reality, with a plain-language explainer ("what is the brief, and why"), a Sarah greeting + example-question chips in the empty chat, and a Generate-Plan button that's disabled with a clear hint until the brief is ready.
  • The full brief reaches the planner. Plan generation passed only six structured fields and never read the rendered docs/PRD.md; now the full PRD is fed to the planner, and the plan's goal is pinned to your project goal verbatim (no planner drift). Same on the automatic QA-replan path.
  • The brief reaches the executing agents. Every dispatched agent prompt gains a compact "Project context" section, so design preferences and constraints are honoured by the implementers, not just the planner.
  • New-project goal field no longer fights you. Both new-project dialogs auto-filled the goal with the template's example and refilled it whenever you cleared it; the example is now a placeholder, so the field starts empty.

Update (existing install)

/plugin marketplace remove wisp-local
/plugin marketplace add Samuel0101010/wisp-orchestrator
/plugin install wisp@wisp-local

Then /wisp-dashboard. The version chip reads v2.2.4. (If you see Permission denied (publickey), run once: git config --global "url.https://github.com/.insteadOf" "git@github.com:".)

Verification

All 8 local gates green; server (573) + web (197) + package unit tests; e2e (54) green; CI (verify + e2e) green. Built subagent-driven: each phase = dev subagent → adversarial review subagent (caught real residual issues before each commit) → lead verification, including dark + light screenshots of the new brief UI.

🤖 Generated with Claude Code

v2.2.3 — dashboard UX-hardening

Choose a tag to compare

@Samuel0101010 Samuel0101010 released this 07 Jun 20:26
v2.2.3
60027d2

v2.2.3 — dashboard UX-hardening: full German, accessible, decluttered

A full live audit of the dashboard (driven with vercel-labs/agent-browser) found no blockers but a batch of polish gaps — most visible for the German-default audience. This release completes the German localization, closes accessibility holes, makes the multi-tab project state coherent, and de-clutters the project list.

Fixed

  • Fully German in German. All built-in project templates now render German names + descriptions (they were hardcoded English); navigation labels are consistent (Team-Chat, Ziel-Planer, Schnellstart); and <html lang> follows the active language (it was stuck at en).
  • Accessibility. Collapsed-sidebar icon links and the nav landmark get accessible names; the language switcher is announced as a real menu; the repeated "Bearbeiten"/"Öffnen" buttons get distinct names; Focusboard + Chat gained page headings; consistent collapse/expand labels.
  • Coherent tabs. Team-Chart no longer claims "no team" while the Team Builder shows a starter team (now flagged unsaved). Success-rate figures on Mission Control carry explicit timeframes, so a 7-day 100% no longer looks like it contradicts an all-time 67%.
  • Cleaner project list. New sidebar project search/filter, and an integration test that wrote to the real DB (missing the test-isolation shim) is fixed — it was the source of the stray "iter"/"init" projects that cluttered the list.

Update (existing install)

/plugin marketplace remove wisp-local
/plugin marketplace add Samuel0101010/wisp-orchestrator
/plugin install wisp@wisp-local

Then /wisp-dashboard. The version chip reads v2.2.3. (If you see Permission denied (publickey), run once: git config --global "url.https://github.com/.insteadOf" "git@github.com:".)

Verification

All 8 local gates green; server (561) + web (186) + package unit tests; e2e (54) green; CI (verify + e2e) green. Every fix live-verified in a real browser with agent-browser. Implemented subagent-driven: each phase = dev subagent → adversarial review subagent (caught six real residual issues before merge) → lead verification.

🤖 Generated with Claude Code

v2.2.2 — better-sqlite3 ABI self-heal

Choose a tag to compare

@Samuel0101010 Samuel0101010 released this 07 Jun 17:10
v2.2.2
89da9fd

What's fixed

A non-developer's dashboard crashed on startup with NODE_MODULE_VERSION: the
native SQLite module (better-sqlite3) had a prebuilt binary for a different
Node version than the one launching the server. The Claude Code CLI (bundled
Node 24) installed it; the server runs under the system Node. This release makes
that self-heal automatically.

  • The launcher now rebuilds the SQLite module for your Node. Before starting
    the server, /wisp-dashboard checks whether better-sqlite3 loads under the
    launching Node; on a mismatch it rebuilds the binding against that Node (a
    prebuilt binary is fetched — no compiler needed for Node 20–25), then retries.
    Both the Windows (PowerShell) and macOS/Linux (POSIX) launchers do this.
  • A direct node dist/server.js now fails clearly, not cryptically: a
    native-module preflight prints a plain-language message with the exact rebuild
    command instead of a raw NODE_MODULE_VERSION stack trace.
  • better-sqlite3 is pinned to 12.9.0 (covers Node 20–25 prebuilds) in both
    consumers, so an npm-based install can't drift to a build that drops the
    Node-20 prebuilt binary.
  • pnpm doctor now checks the SQLite module loads under your Node.

Update an existing install (the plugin tracks main)

/plugin marketplace remove wisp-local
/plugin marketplace add Samuel0101010/wisp-orchestrator
/plugin install wisp@wisp-local

The install step builds for ~1–2 min. If you hit Permission denied (publickey), run once:
git config --global "url.https://github.com/.insteadOf" "git@github.com:"

Verification

All 8 local gates + e2e (54) green; both launcher scripts syntax/parse-checked;
a real node dist/server.js boot smoke test. A 4-agent adversarial review gated
the diff and caught that the original in-DB guard was dead code under ESM
(fixed by a first-import preflight).