$ lumen --changelog
Changelog
What's shipping on Lumen. Customer-visible surface of our build log; internal cleanup and refactors are omitted.
Library, GitHub clone-to-deploy, Ollama, daemon self-reload
2026-05-19
- feat New Library page at
/library groups every workspace by lifecycle phase (Blueprinting / In progress / Shipped / Paused / Archived) with phase-colored cards, blueprint version counts, deploy-target badges, and a per-card menu (pin, archive, change phase, open in editor). Click any card to open the workspace in chat. Blueprints persist with their workspace through every phase transition.
- feat Import from GitHub: paste a repo URL in New and Lumen clones to
~/.lumen/projects/<repo>, creates the workspace pointed at the clone, auto-detects deploy target from wrangler.toml or vercel.json. Same flow available from the CLI as lumen project create <name> --from-github <url>.
- feat One-click deploy: Settings drawer adds a Deploy section that streams
wrangler deploy or vercel --prod output live into a log pane. Auto-stamps the workspace as Shipped on exit-0.
- feat Ollama as a first-class provider: install Ollama locally, pick it in the provider dropdown for free unrestricted inference. Also serves as the auto-fallback when your cloud provider rate-limits — Lumen announces the switch inline (
[Switching to Ollama for this turn …]) and continues without erroring out the chat.
- feat Smarter Claude tier routing: when no model is pinned, Lumen picks Sonnet 4.6 for routine work (~5x cheaper input vs Opus, no measurable quality regression on coding), escalates to Opus on architectural / security-audit / long-context cues, downgrades to Haiku for short factual questions.
- feat MCP server presets: one-click GitHub (works with any classic PAT), Cloudflare and Vercel (browser OAuth one-time via
mcp-remote bridge). MCP connection-status dots in the chat toolbar show health at a glance.
- feat Daemon self-reload: a dist-file watcher auto-restarts the local daemon when new code lands, so customers no longer need
Restart-Service LumenDaemon after a deploy. Reload daemon button in Settings as a manual fallback.
- feat Right-pane upgrades: plan-level progress bar, per-subgoal elapsed time + retry-count badges, dedicated error block on failed subgoals, Retry / Skip / Discuss-with-left action trio, structured tool-call cards with expandable args + result, auto-scroll output, planning-state skeleton during the 5-15s subscription-mode decomposition.
- feat Setup status card on
/settings: at-a-glance view of daemon, GitHub PAT, Ollama, Wrangler, and Vercel CLI wiring with install links for the missing pieces.
- ux Bidirectional handoff pills next to Send: Run latest → dispatches the chat's latest message to the Run pane in one click; Copy puts the same text on the clipboard; ← Load latest result in the right-pane header loads the latest subgoal output back into the chat composer (you decide when to send).
- ux Run sub-toolbar: + New plan (back to empty state), ⨯ Cancel (mirror of the inline cancel), History dropdown listing the last 10 plans for one-click swap.
- ux Composer stacks textarea above the actions row so the input gets full width even with the new buttons present.
- ux Open in editor button next to the workspace picker for codebase workspaces — launches VS Code / Cursor / system file manager on the codebase path.
Tools across all four providers
2026-05-18
- feat Lumen now calls tools mid-turn:
repo_search (symbol / file / content modes against the workspace index), web_search (Brave Search), web_fetch (HTTP GET with HTML strip + 12 KiB cap). Works in both the left-pane conversation and the right-pane controller's provider-api subgoals.
- feat Tool use wired across all four AI adapters — Anthropic, OpenAI, xAI (via Grok extending the OpenAI adapter), and Google Gemini. Each provider's native tool format mapped to a single neutral
LlmTool + ContentBlock shape.
- feat Brave Search is BYOK like the AI providers. Each customer brings their own key (free tier covers ~1000 searches/month).
/settings and /account gain a fifth provider row; no shared search cost on the operator.
- ux Tool events render inline. Left pane shows a styled
tool-trace row under the assistant message with the name + args + truncated result; right pane inlines [tool] name(args) / [result] … markers into the subgoal output.
- ux Chat composer: Enter sends, Shift+Enter for a newline (replaces Cmd/Ctrl+Enter).
- fix "Add an API key" banner now checks the current workspace's selected provider, not "any of the four". Re-evaluates on workspace switch + after Settings save; dismissible per session; toned down visually.
Direct-to-workspace + full Account
2026-05-18
- ux Sign-in now lands you straight in the workspace at
/chat instead of a welcome page. The interstitial dashboard step is gone.
- feat
/account rebuilt as the user-info hub: overview cards (status, trial end / renew date, member since, last sign-in, workspace count, API keys configured, tenant id), per-provider API key inventory, subscription portal, password change, admin links, delete-account. Trial countdown banner and Stripe Checkout return banners live here too.
- ux
/dashboard redirects to /account. Old bookmarks still work; the welcome page is retired.
Controller, phase 1
2026-05-18
- feat Two-pane workbench restored. Left lane is the conversation with Lumen; right lane is the controller (plan tree, dispatch, verification). Mobile stacks with a Lumen / Controller tab toggle.
- feat Planner. New Plan button next to Send. Lumen decomposes the customer's intent into a dependency graph of 1 to 8 subgoals (title, description, executor, dependsOn) and persists them per workspace.
- feat Dispatcher. Sequential subgoal execution streamed via SSE.
claude-code subgoals run the Claude Code CLI on the daemon with full filesystem + shell access; provider-api subgoals make a raw provider call; manual subgoals halt for human action.
- feat Verifier. After each
claude-code subgoal, Lumen runs tsc and the workspace's test script automatically (detected from tsconfig.json + package.json), records pass/fail per check, and retries the subgoal once with the verification output as feedback if any check fails.
- feat Optional approvals. Workspace setting "Approve every destructive subgoal" off by default — Lumen runs plans end-to-end. Flip it on to pause before every
claude-code subgoal with an Approve and run button on the right pane.
Launch week — wave 2
2026-05-18
- feat Real-time /status page with live probes of every customer surface; auto-refreshes every 60s.
- feat Public stats endpoint exposes anonymized counts (customers, trial, active) for the landing-page live stats strip.
- feat Six-card starter-prompt gallery in chat empty state — pre-fills the composer with templated skeletons for refactor / feature / audit / debug / docs / design intents.
- ux First-time chat empty state now auto-opens the workspace-name input and swaps to a "Welcome — create one to begin" line for users with zero workspaces; starter cards prefill a sensible workspace name instead of dead-ending in a toast.
- feat "What people use Lumen for" use-case grid on landing: six concrete cards (Coder, Pentester, Architect, Debugger, Tech writer, Negotiator) under the hero.
- feat Show-don't-tell terminal demo block on landing — concrete picture of what Lumen produces.
- feat PWA service worker installs Lumen as an app; offline marketing shell, app + API routes always hit network.
- ux Trial-expiry + magic-link emails redesigned with the new brand: dark header strip, white card, side-by-side Monthly/Annual pricing table.
- ux Hacker aesthetic across every surface: monospace stack, near-black canvas, terminal-style
$ lumen --page prompts, blinking cursors after page titles.
- ux Landing-page animated background — drifting parallax star field + sweeping data lines. Scoped to landing only; functional pages stay quiet.
- design Visual identity v5: Helicon Works (parent brand) + Lumen marks. Coastal-Aegean palette for the logos paired with a hacker terminal for the UI.
- feat Stripe billing live: Monthly ($20) and Annual ($149) plans, BNPL on annual via Klarna / Afterpay / Affirm.
- feat Customer portal endpoint and Manage Subscription UI on
/billing and /account — plan switching, payment-method updates, at-period-end cancellation with reason capture, all self-serve.
- feat Resend email infrastructure live for
lumendev.net — magic-link + trial-warning emails (T-3, T-1, T-0) firing through a daily cron at 13:00 UTC.
- feat GitHub Actions deploy pipeline — every push to
main deploys via wrangler with a live-marker probe.
- fix Stripe webhook now syncs
current_period_end back to the customer record so the dashboard "Renews on" date stays accurate after subscription start.
- fix XSS hardening across admin pages — request-header-derived fields (IP, user agent) escaped before rendering.
Foundation
2026-05-15 → 2026-05-17
- feat Multi-tenant SaaS architecture: per-tenant data isolation enforced at the database row level, RS256-signed 14-day session JWTs, PBKDF2+pepper password hashing.
- feat 181 expert roles × 192 stackable skills × 4 AI providers (Anthropic, OpenAI, Google, xAI) composed into one workbench.
- feat Blueprint #1 — Anthropic prompt-cache breakpoint + stream retry layers wrapping every adapter. Up to 10× input-token cost reduction on multi-turn sessions.
- feat Blueprint #2 phases 1-3 — workspace index (file hash + symbol extraction for TS/JS/Python) + chokidar watcher. Standalone modules; auto-wired integration to land in a follow-up.
- feat Blueprint #3 — Docs Renderer turns a finalized Blueprint into README + architecture + API reference + data model + open-questions Markdown bundle.
- feat Admin surface — customer management suite, audit log with action filter, finance dashboard with year-end CSV export, View-as-customer toggle.
- feat Claude Opus 4.7 as the default Anthropic model with intent-aware routing; Haiku for short factual queries, Opus for everything else.