Changelog

Update 2026-04-15

### Workflow Engine

- **Phases and gates**: Workflows now support `(phase ...)` and `(gate ...)` forms for structured execution stages and pass/fail evaluation checkpoints.
- **Namespaced plugin shorthand**: `github/prs` automatically desugars to `(plugin "github" "prs")` for terser workflow syntax.
- **Control-flow forms**: Six new s-expr forms — `retry`, `timeout`, `let`, `catch`, `cond`, and `map` — for richer workflow logic.
- **`def` bindings**: Workflows can now define named symbols with `(def ...)` and reference them throughout the file.
- **Smart auto-routing**: `RunSmart` escalation loop selects the best LLM tier automatically, with structural validation and self-evaluation before promoting to a paid model.
- **Parallel batch runs**: Variants run concurrently per issue using goroutines, cutting batch wall time significantly.
- **Enriched run telemetry**: Each run now records `workflow_file`, `repo`, model, token count, cost, and `gate_passed` for full observability.
- **Workflow metadata keywords**: Pipelines support `tags`, `author`, `version`, and `created` header fields.
- **Template expressions in plugin args**: Arguments to plugin calls now support `{{...}}` template expressions.
- **`--set key=value` param support**: Override workflow params at run time from the CLI.

---

### Providers

- **LM Studio**: New `LMStudioProvider` with auto-download of missing models, progress polling, load-state logging, and full integration into the tiered runner and pricing table.
- **OpenAI-compatible provider**: Generic provider client supports any OpenAI-compatible endpoint; configure named endpoints via `provider_config` in your config file.
- **Tiered LLM escalation**: Automatic local → free-paid → paid escalation with per-step token and cost tracking.
- **Self-evaluation**: Providers can now score their own output against criteria before the runner decides whether to escalate.
- **Structural validation (`CheckStructure`)**: Fast pre-eval check that catches malformed responses before spending tokens on scoring.
- **Provider resolver**: Named providers from config are wired into the pipeline runner and tiered runner automatically.

---

### CLI

- **`--tag` filter on `workflow list`**: Filter the workflow list by one or more tags.
- **`--workspace` flag**: New persistent root flag wires a workspace into all commands for path resolution and config override.
- **`workflows_dir` config field**: Point `gl1tch` at a custom workflows directory.
- **Smart URL routing**: Issue URLs route to `issue-to-pr` workflow; PR URLs and `review <pr>` route to `pr-review` workflow with parsed params automatically.
- **Multi-issue `ask`**: `ask` accepts multiple issues and supports `--compare` for side-by-side batch runs across providers.
- **`glitch up` seeds dashboards**: Running `glitch up` now automatically seeds default Kibana dashboards.
- **`glitch index` command**: Index a codebase into Elasticsearch for semantic code search.
- **`glitch up` / `glitch down`**: Docker Compose lifecycle commands for the full observability stack.
- **`observe` command**: New command queries knowledge indices and synthesizes answers using any LLM provider.

---

### Plugins

- **Plugin discovery**: Plugins are discovered from local and global directories automatically.
- **Plugin manifest parsing**: `plugin.glitch` manifests are parsed for metadata, shared definitions, and argument specs with defaults and validation.
- **Plugin CLI** (`glitch plugin list`, `glitch plugin help`, dynamic subcommands): Browse and invoke plugins directly from the CLI.
- **Plugin execution**: Plugins load their manifest, parse arguments, and run their sub-workflow end-to-end.
- **SDK forms**: Built-in execution of `json-pick`, `lines`, `merge`, `http`, `read-file`, `write-file`, and `glob` forms inside workflows.
- **Plugin cache + shared step seeding**: Plugin steps are cached and shared across runs for faster repeated execution.
- **Generalized batch runner**: Batch operations are now handled by a unified runner used by both the CLI and the plugin system.

---

### GUI / API Server

- **Embedded single binary**: The frontend is built with a script and embedded into the Go binary via `go:embed` — no separate server process needed.
- **Workspace manifest endpoint**: `GET /api/workspace` returns the parsed `workspace.glitch` manifest.
- **Workflow CRUD + run endpoints**: `GET/PUT /api/workflows`, `POST /api/workflows/:name/run` for managing and executing workflows via HTTP.
- **Runs list, detail, and results browser**: API endpoints expose run history and per-step results.
- **Enriched workflow list**: Workflow responses include `tags`, `author`, and `version` metadata; run responses include model, token, and cost fields.
- **Kibana iframe URLs**: Dedicated endpoints return pre-built Kibana iframe URLs for per-workflow and per-run telemetry dashboards.
- **SPA fallback + review fixes**: The server now correctly handles SPA client-side routing and wires workflow execution end-to-end.

---

### Docs & Examples

- **New `.glitch` workflow examples**: Example files showcasing s-expr format, `def` bindings, map syntax, and control-flow forms.
- **Site migrated to Astro**: Documentation site rebuilt with Astro and a doc-generation workflow.
- **README rollup artifacts**: Batch runs now generate a `README.md` rollup in each result directory for quick human review.

Update 2026-04-14

### Workflow Engine

- **S-expression workflows** — New `.glitch` file format with a full sexpr parser/lexer. Supports 6 control-flow forms: `retry`, `timeout`, `let`, `catch`, `cond`, and `map`. Includes `def` bindings, symbol resolution, and map syntax for composing steps declaratively.
- **Workspace support** — New `--workspace` flag and `workflows_dir` config field. Workflow resolution is now workspace-aware with config overrides; `glitch run` searches subdirectories automatically.
- **Parallel batch runs** — Workflow variants now run in parallel per issue via goroutines, significantly reducing wall-clock time for comparison runs.
- **Smart routing (RunSmart)** — Auto-routing escalation loop with structural validation (`CheckStructure`) and self-evaluation scoring. Routes based on tiers and a configurable `eval_threshold`.
- **Result path conventions** — Result directories now follow `org/repo/issue-N` layout with `issue-`/`pr-` prefixes. Each run directory includes a `run.json` (with `repo`, `ref_type`, `ref_number`) and a generated `README.md` rollup artifact.
- **Agent executor** — New agent executor with skill injection for post-implementation review, observer repo context, and research fallback.
- **Batch orchestration** — New batch package for multi-issue comparison runs, including `ParseMultiIssue` for flexible input parsing.

---

### Providers

- **OpenAI-compatible providers** — New generic OpenAI-compatible HTTP client. Named providers can be declared in config under `providers` and resolved at runtime via a `Resolver`. Supports `{{.model}}` template in provider configs.
- **Tiered LLM escalation** — Automatic local → free-paid → paid escalation with token tracking. Tiers and `eval_threshold` are wired through config to all `pipeline.Run` call sites.
- **Self-evaluation** — Providers can now score their own output using a built-in prompt builder and PASS/FAIL ratio parser for per-criterion confidence scoring.
- **Model updates** — Replaced `llama` with `grok`; upgraded `gemma` to `gemma-4-27b`.
- **YAML provider registry** — Plugin system removed; providers are now declared in YAML and resolved by name.

---

### CLI

- **`ask` redesign**`glitch ask` now supports multi-issue input, `--compare` for batch comparison runs, and structured handoff instructions.
- **`--set key=value`** — Pass arbitrary parameters to workflow runs from the command line.
- **URL routing** — Issue URLs and bare refs are routed to `issue-to-pr` workflow; PR URLs and `review <pr>` shorthand route to `pr-review` workflow with parsed params.
- **`glitch observe`** — New observe command backed by a natural-language-to-ES query engine that synthesizes answers from indexed run history.
- **`glitch index`** — Index a codebase into Elasticsearch for semantic code search.
- **`glitch up` / `glitch down`** — Spin up/down the full Docker Compose stack. `glitch up` now automatically seeds default Kibana dashboards on first run.
- **Tool-use research loop**`glitch ask` runs an iterative LLM tool-use loop with built-in tools: `grep`, `read`, `git`, `list`, `fetch`, and Elasticsearch search.
- **Confidence scoring** — Parse per-criterion PASS/FAIL ratios from reviews; Copilot CLI footer parsed for real token counts and premium request cost.

---

### Dashboard & Analytics

- **Intelligence dashboard** — New general-purpose LLM intelligence Kibana dashboard with Vega-Lite visualizations: tier distribution, cost savings, escalation hotspots, model leaderboard, head-to-head model comparison per issue, PR readiness, and cross-review win rates.
- **Faceted confidence chart** — One row per issue, free vs. paid providers, with a scoring-normalized annotation line.
- **Cross-review learning** — Per-variant scores indexed to Elasticsearch to power learning-over-time charts.
- **Removed unreliable charts** — Self-review charts removed (inconsistent across models); bang-for-buck replaced with direct head-to-head model comparison.

---

### Docs & Site

- **Astro site migration** — Project site rebuilt with Astro and a doc-generation workflow for automated documentation publishing.
- **S-expression examples** — New example `.glitch` workflow files demonstrating sexpr format features, `def` bindings, and control-flow forms.

Changes +0 -0 Requests 1 Premium (54s) Tokens ↑ 48.6k • ↓ 1.9k • 38.6k (cached)