Changelog

Rendered from CHANGELOG.md at build time. Source of truth in the repo.

Changelog

All notable changes to Omega IDE are documented here.
Following: Keep a Changelog
Versioning: Semantic Versioning

Types of changes: Added, Changed, Deprecated, Removed, Fixed, Security


[Unreleased]

2026-05-16 evening sweep — Phases 1, 2.6, and 3: standalone IDE build pipeline + icons (Phase 1); self-hosted release distribution to Hetzner #2, GitHub Releases code paths removed (Phase 2.6); Next.js marketing website scaffold with 19 pages (Phase 3).
>
Test count: 249 total (228 unit + 21 integration), up from 245 (and 158 baseline). All 4 workspaces compile clean.

Added — Phase 3 (marketing website)

  • website/ workspace — Next.js 14 (App Router) + Tailwind v3 + TypeScript strict. Hand-scaffolded (no create-next-app) so the repo only carries files we actually use.
  • 19 Tier-1 pages/, /pricing, /download, /sign-in, /sign-up, /account, /docs, /changelog, /about, /security, /security/vulnerability-disclosure, /terms, /privacy, /cookies, /refunds, /subprocessors, /dpa, /aup, /enterprise. Shared Nav + 5-column Footer per the website plan.
  • /download server component reads versions.json from Hetzner #2 with revalidate: 300. Detects user OS via User-Agent to highlight the primary install button; falls back to a baked-in manifest (also pointing at omegahq.dev/downloads/..., never GitHub) when the live fetch fails.
  • /changelog renders /CHANGELOG.md at build time via an inline 40-line markdown renderer — keeps the bundle dep-free (react-markdown would be ~80 KB for a single page).
  • Brand placeholder mechanism — single source of truth at website/src/config/brand.ts reading process.env.BRAND_NAME. The placeholder violet #7C3AED lives in exactly three files (SVG + brand config + Tailwind palette); brand rename is a three-line PR.
  • /robots.txt via Next's metadata convention — explicitly disallows the functional URLs (/downloads/, /pre-release/, /account) per the distribution-model addendum.
  • OG image + favicons generated from the same tools/branding/icons/omega.svg source via rsvg-convert — one SVG, one IDE icon, one OG image, one favicon set.
  • Root scripts yarn website:dev / yarn website:build / yarn website:startomega-website added to the root workspaces array.

Test status (after Phase 3)

  • Backend: 139 unit + 21 integration
  • Extension (omega-core): 70 unit + 6 E2E suites
  • CLI: 19 unit
  • Website: no unit tests; type-check + Next build are the gate
  • Total: 249 tests passing, +0 from Phase 1/2.6 sweep (Phase 3 is pure scaffolding)

Files created — Phase 3

website/package.json · website/tsconfig.json · website/next.config.js · website/tailwind.config.ts · website/postcss.config.js · website/next-env.d.ts · website/.env.local.example · website/README.md · website/src/config/brand.ts · website/src/components/{Nav,Footer,PageHeader}.tsx · website/src/app/{layout.tsx,page.tsx,globals.css,robots.ts} · 19 src/app/<route>/page.tsx files · website/public/{og.svg,og.png,favicon.ico,favicon-16x16.png,favicon-32x32.png}

Files modified — Phase 3

package.json — added website workspace + 3 website:* scripts

[Unreleased] (earlier this session — Phases 1 & 2.6)

2026-05-16 evening sweep — Phases 1 & 2.6: standalone IDE build pipeline + icons + branding overlay (Phase 1); self-hosted release distribution to Hetzner #2, all GitHub Releases code paths removed (Phase 2.6).
>
Test count: 249 total (228 unit + 21 integration), up from 245 (and 158 baseline). All 3 workspaces compile clean.

Added (2026-05-16 evening)

  • Standalone IDE build pipelinescripts/setup-vscode-fork.sh (one-time shallow clone of microsoft/vscode + jq-merge of branding overlay), scripts/build.sh rewritten end-to-end (idempotent rsync of omega-corevscode/extensions/omega-core, per-workspace compile, gated yarn install in vscode/, fork compile), scripts/package-installer.sh <platform> wraps yarn gulp vscode-<platform> for win32-x64 / darwin-x64 / darwin-arm64 / linux-x64 / linux-arm64.
  • Branding overlaytools/branding/product.overlay.json (nameShort, bundle IDs, download/update URLs, win32 app IDs) merged into the fork's product.json by setup script.
  • Real Omega iconstools/branding/icons/omega.svg (PLACEHOLDER Ω + purple gradient pending final brand) + generator tools/icons/generate-icons.sh (rsvg-convert + ImageMagick + iconutil/png2icns). Generated code.png (Linux), code.ico (Windows, multi-resolution), code.icns (macOS) checked in.
  • HANDOFF.md §5a "Building the standalone Omega IDE" — OS prereqs, build commands, branding overlay docs, distribution model, known caveats.
  • CLAUDE.md §6 expanded with the standalone build flow.
  • Self-hosted release distribution.github/workflows/release.yml rewritten:
- release-readiness now also verifies vars.DEPLOY_HOST_PRESENT=1 (deploy SSH key + host config) — required, no override. - New build-installer matrix job (windows / macos-arm64 / macos-x64 / linux) runs the full setup-vscode-fork → build → package-installer pipeline, signs/notarizes (gated), computes SHA-256. - New distribute job rsyncs every platform's artifact to Hetzner #2 (/var/www/omega-downloads/v${VERSION}/), atomically writes versions.json, updates latest symlink. - Channel split: all-platforms-signed → /downloads/; any-unsigned → /pre-release/ (founder verifies + promotes manually).
  • /updates/:platform reads live versions.json from Hetzner #2UPDATES_VERSIONS_JSON_URL env opt-in, 5-min in-memory cache, graceful fallback to inline manifest on fetch failure. All inline URLs purged of GitHub Releases — now point to omegahq.dev/downloads/... exclusively.
  • docs/RELEASE_DISTRIBUTION.md — operations runbook: directory layout, nginx config, secrets + presence-flag variables, manual promotion / rollback procedure.

Changed (2026-05-16 evening)

  • No more GitHub Releases publishing — removed softprops/action-gh-release@v2 step. All installers ship to Hetzner #2 only.
  • Inline updates manifest URLs all point to omegahq.dev/downloads/... — pinned by a new "every URL is omegahq.dev" test invariant.
  • scripts/build.sh went from 8 lines (workspace compile only) to a full pipeline that produces a runnable fork build.

Test status

  • Backend: 139 unit (+4 from updates.test) + 21 integration
  • Extension (omega-core): 70 unit + 6 E2E suites
  • CLI: 19 unit
  • Total: 249 tests passing

Files created (2026-05-16 evening)

scripts/setup-vscode-fork.sh · scripts/package-installer.sh · tools/branding/icons/omega.svg · tools/branding/icons/code.{png,ico,icns} + 8 intermediate code-N.png files · tools/branding/product.overlay.json · tools/icons/generate-icons.sh · docs/RELEASE_DISTRIBUTION.md

Files modified (2026-05-16 evening)

scripts/build.sh · HANDOFF.md · CLAUDE.md · .github/workflows/release.yml · backend/src/routes/updates.ts · backend/src/routes/updates.test.ts

[Unreleased] (earlier today)

2026-05-16 morning sweep — PRIORITY 1–7: E2E test infrastructure, full Stripe webhook coverage, dunning state machine, daily reconciliation against provider admin APIs, batch worker scaffold, release pipeline signing gates, §34 skill migration exemplars + recipe.
>
Test count: 233 total (212 unit + 21 integration), up from 158 baseline. All 3 workspaces compile clean.

Added (2026-05-16)

  • E2E test infrastructure via @vscode/test-electron (extensions/omega-core/src/test/) — 6 mocha suites cover activation, chat panel, skill picker, tier gating, skill-run wire contract, settings persistence, external-URL interception. Network stubbed via globalThis.fetch with __omegaTestHooks for assertions. New CI job runs under xvfb on Linux.
  • Stripe webhook handlers (6 new in backend/src/stripe/handlers.ts):
- customer.subscription.trial_will_end — queues "trial ending" email - customer.subscription.paused — flips users.status = 'paused' (auth middleware blocks runs) - customer.deleted — defensive: clears stripe_customer_id, flags row for review, pages oncall - radar.early_fraud_warning.created — writes critical fraud_events, auto-suspends, pages - tax_rate.created / tax_rate.updated — flush in-memory tax-rate cache (stripe/tax-cache.ts) - charge.dispute.closed — restore on won, leave suspended on lost
  • Alert hook (backend/src/observability/alert.ts) — alertCritical() / alertWarn(); default no-op.
  • Dunning state machine (backend/src/jobs/dunning.ts + migrations/002_dunning_and_email_log.sql) — day-0 → day-7 → day-8 (past_due) → day-14 (paused) → day-30 (cancelled, tier→free, credit history preserved). Idempotent via email_send_log unique (user_id, email_type, day_marker). Runs every 15 min. 7 integration tests + 6 unit tests.
  • Provider admin-API clients (backend/src/providers/admin-api.ts) — fetchAnthropicDailyUsage, fetchOpenAIDailyUsage. Each returns null when admin env var unset; reconciler skips that provider cleanly. reconcileAllProviders() runs independently per provider; 0.5% drift warns, 2% pages.
  • Batch API worker (backend/src/gateway/batch.ts + backend/src/jobs/batch-runner.ts + migrations/003_batch_queue.sql) — batch_jobs queue; usage_events.batch flag; submission at queue ≥ 50 OR oldest > 5 min; 50% rate on settle; sync fallback when batch infra is disabled.
  • Release pipeline signing scaffolds (.github/workflows/release.yml):
- release-readiness job fails workflow up-front if vars.WINDOWS_EV_CERT_PRESENT / vars.APPLE_NOTARY_PRESENT aren't set. - Windows: signtool.exe sign gated on the var. - macOS: xcrun notarytool submit --wait + xcrun stapler staple. - Emergency overrides via vars.SKIP_* print warning annotations. - Operator setup documented in docs/RELEASE_SIGNING.md.
  • §34 strict-JSON exemplars/commit and /explain fully migrated: new prompts with OUTPUT FORMAT blocks + token budgets, postProcess fence-strippers, dedicated renderers in postProcessors.ts, 11 new unit tests, 12-case eval set for /explain in scripts/eval-cases/explain.json.
  • Skill migration recipe (docs/SKILL_MIGRATION_RECIPE.md) — 6-step copy-paste pattern + prioritised migration order for the remaining 33 skills.
  • /updates/:platform endpoint (from prior round) — IDE auto-update polling.

Changed (2026-05-16)

  • handleInvoiceFailed now writes a payment_failure_events anchor row so the dunning scheduler has its day-0 timestamp.
  • scripts/validate-pack.ts anti-pattern regex relaxed — \b after bug was incorrectly rejecting plural "common bugs".
  • backend/src/bootstrap.ts wires the 6 new Stripe handlers when STRIPE_SECRET_KEY is set.
  • backend/src/index.ts schedules 3 new jobs: dunning (15 min), daily-reconcile (24 h), batch-runner (5 min).
  • E2E test files use .e2e.ts suffix (not .test.ts) so the vitest exclude rule keeps working; mocha glob is **/*.e2e.js.

Deferred (content authoring, big-batch)

  • 33 remaining skill migrations to strict §34 JSON (recipe in docs/SKILL_MIGRATION_RECIPE.md).
  • 10 premium skills not yet registered — need registration + prompts + post-processors + evals.
  • ~290 eval cases (10–15 × 29 skills) — mechanical content writing.
  • 15 Domain Pack expansions to fully meet the §35.7 quality bar.

Framework, recipe, and exemplars are in place — these items are content writing rather than code blockers.


[Unreleased] (prior)

Phase 3 + 4 + 5 complete: Skills Engine + Docs Engine + Agent Orchestrator + Chat panel + Balance widgets + CLI + Marketing site + 15 Domain Packs. 98 tests across 16 files. All 3 workspaces compile clean.

Added

  • 9 §34 launch skills registered in extensions/omega-core/src/skills/registry.ts: /boilerplate, /devlog, /dockerfile, /ci-workflow, /env-setup, /regex-builder, /api-client, /branch-name, /format. All use Master Plan §34 prompts with stable system prompt (cacheable) + variable user prompt + JSON-only output.
  • Skill launch metadatamodelTier (haiku/standard/premium/long-context), requiredTier (free/starter/standard/pro), and cacheable on every Skill. Gateway uses these for routing and pricing decisions.
  • Skill categoriesdevops and utilities added to SkillCategory.
  • Handlebars-subset template renderer in the skill engine. Supports {{#if path}}...{{/if}}, {{#each path}}...{{/each}} (with {{this}}), {{truncate path N}}, plus dotted/bracket paths and arrays.
  • Category-grouped Quick Pick for omega.runSkill — shows skills under their category with tier and model-tier badges; supports description/detail search.
  • Backend gateway (backend/src/gateway/) — full §50 scaffold:
- auth.ts — Clerk-pluggable JWT verification middleware (§50.1) - reserve.tsreserveCredits() with SELECT FOR UPDATE row lock (§50.2) - reconcile.tsreconcile() with 1.3× margin multiplier (§50.3 / L30) - prompts.tsbuildPrompt() cache-friendly assembly with Domain Pack concatenation (§50.7) - router.tsselectProvider() health-aware fallback chain + modelForTier() (§50.8) - orchestrator.tsrunSkillOnGateway() end-to-end skill execution with refund-on-failure (§50.6) - providers/claude.ts — lazy-loaded Anthropic provider with cache_control: ephemeral (§50.5) - skills.ts — server-side skill catalog with tier gating
  • Money math in micros (backend/src/money.ts) — BigInt arithmetic per L33, applyMarginMultiplier() (×13/10), computeProviderCostMicros() accounting for cached input at 10% rate.
  • Provider rate cards (backend/src/rates.ts) — May 2026 public rates for Anthropic, OpenAI, Gemini, Grok in micros per million tokens.
  • §12 database schema (backend/src/db/schema.ts) — TypeScript row types + raw DDL for users, usage_events, credit_transactions, credit_reservations, subscriptions, fraud_events, stripe_webhook_events, plus reconciliation_log for §50.10.
  • DB pool abstraction (backend/src/db/pool.ts) — setDbImpl() for testability without pg dependency yet.
  • Background jobs:
- jobs/orphan-cleanup.tscleanupExpiredReservations() refunds expired holds (§50.11) - jobs/daily-reconcile.tsrunDailyReconciliation() drift check, 0.5%/2% alerts (§50.10)
  • Stripe webhook handler (backend/src/routes/stripe-webhook.ts) — idempotency dedup via stripe_webhook_events; pluggable verifier + event handler registry (§50.9).
  • Skill run route (backend/src/routes/skill-run.ts) — POST /skills/run wired to orchestrator + auth middleware.
  • Domain Pack loader (backend/src/packs.ts) — filesystem-based, minimal YAML frontmatter parser, in-memory cache.
  • 5 free Domain Packs in backend/packs/: generic-web.md, saas-billing.md, ecommerce.md, internal-tools.md, data-pipelines.md (Master Plan §35.1-35.5).
  • Backend endpoints/health reports skill/pack counts; /skills lists registered skills with tiers; /packs lists loaded packs.

Changed

  • security skill → security-scan to match Master Plan §34 catalog. The previous name was non-canonical.
  • omega.runSkill UI — flat picker replaced with category-grouped picker.
  • renderTemplate() in skills/engine.ts — upgraded from Mustache-style to Handlebars-subset. Existing {{#if}} / {{#each}} patterns in some prompts now actually evaluate instead of rendering literally.
  • Every skill request now sets enablePromptCaching: true, so Anthropic's cache_control: ephemeral is automatically applied to system prompts.
  • CLAUDE.md — Phase 3 status updated to IN PROGRESS; added Master Plan deference banner per Master Plan §1.

Fixed

  • OMEGA_MASTER_PLAN.md §35.2 — unclosed ` `typescript code fence in the SaaS Billing Pack's webhook example. Heading ## Common bugs to flag` was rendering inside the fence as code.

Added (Master Plan docs + scaffolds pass)

Documentation:

  • docs/GLOSSARY.md — terminology (Master Plan §30)

  • docs/CONVENTIONS.md — code conventions (§44)

  • docs/BETA_PLAYBOOK.md — Phase A/B execution playbook (§23 + §47)

  • docs/COMPLIANCE_CHECKLIST.md — pre-Open-Beta + Year-2 SOC 2 checklist (§48)

  • docs/SECURITY.md — operational security posture (§16 + §43)

  • docs/api/openapi.yaml — OpenAPI 3.1 contract for the gateway (§39)

  • docs/runbooks/{db-restore,production-deploy,incident-response,provider-outage,fraud-response,daily-reconcile,post-mortem-template,README}.md — 7 operational runbooks (§38)

  • docs/journeys/{new-user-signup,paid-user-power-use,churn-and-return,README}.md — 3 user journey maps (§49)

  • docs/legal/{TERMS_TEMPLATE,PRIVACY_TEMPLATE,README}.md — DRAFT legal templates for counsel review (§19)

Content surfaces:

  • backend/emails/ — 11 transactional + drip email templates (§36)

  • marketing/copy/ — landing hero, pricing page, HN launch post (§37)

Premium Domain Packs (§35.6):

  • backend/packs/premium/healthcare.md — Healthcare / HIPAA

  • backend/packs/premium/finance.md — Finance / Compliance

  • backend/packs/premium/banking.md — Banking / payment rails

  • backend/packs/premium/government.md — Public sector / accessibility

  • backend/packs/premium/real-estate.md — Proptech / MLS / escrow

Runtime scaffolds:

  • backend/src/gateway/rate-limit.ts — per-user rate limiting (§13.1) with in-memory fallback, fail-open on store failure

  • backend/src/gateway/response-cache.ts — sha256 cache-key + pluggable store for cacheable skills (§13.2)

  • backend/src/analytics/events.ts — typed event catalog, 30+ event shapes (§40)

  • backend/src/analytics/emit.ts — emitter façade (no-op default; PostHog wires via setEmitter() per L35 opt-in)

  • extensions/omega-core/src/statusBar.ts — live session-cost status bar item

Wiring:

  • backend/src/routes/skill-run.ts — rate-limit middleware + analytics events on every skill run

  • backend/src/gateway/orchestrator.ts — response-cache check before reservation; cache-write on success

Infrastructure:

  • .github/workflows/ci.yml — compile, test, skill eval, npm audit, secret scan

  • backend/migrations/000_init.sql — initial schema migration covering §12 tables + admin_audit_log + feedback + reconciliation_log

  • .env.example — environment template covering all subprocessors

Scripts:

  • scripts/export-skill-catalog.ts — build-time skill catalog JSON export (resolves the open question from previous DEVLOG entry)

Tests (now 35 passing across 5 files):

  • backend/src/gateway/rate-limit.test.ts — 5 tests for rate-limit behavior

  • backend/src/gateway/response-cache.test.ts — 6 tests for cache key + storage + TTL

  • backend/src/packs.test.ts — 5 tests verifying the 5 free packs load with correct metadata

Added (Master Plan completion pass — full §1-52 coverage)

12 new docs:

  • docs/RISK_REGISTER.md (§26) — 15 risks scored severity × likelihood

  • docs/INVESTOR_RELATIONS.md (§28) — cadence, decision rights, monthly memo template

  • docs/ROADMAP.md (§29) — 2026-2028+ plan

  • docs/PRICING_MATH.md (§31 Appendix A) — worked unit economics

  • docs/VENDOR_SETUP.md (§32) — week-by-week vendor onboarding

  • docs/STRIPE_SETUP.md (§33) — products, prices, webhooks, tax

  • docs/FINANCIAL_PROJECTIONS.md (§41) — Year-1 conservative / aggressive / bear

  • docs/HIRING_PLAN.md (§42) — when/who/cadence; default hire #1 is support

  • docs/TEST_STRATEGY.md (§45) — pyramid; what we don't test

  • docs/DECISION_FRAMEWORKS.md (§46) — 10 frameworks for recurring decisions

  • docs/COMPETITIVE_MATRIX.md (§52) — vs Cursor / Windsurf / Copilot detailed comparison

  • docs/SUBPROCESSORS.md — GDPR Article 28 disclosure list

Backend runtime additions:

  • backend/src/gateway/fraud.ts — fraud rule engine (5 rules); persists to fraud_events

  • backend/src/byok.ts — AES-256-GCM envelope encryption for BYOK keys (scrypt-derived per-record, fresh salt+IV, GCM auth tag)

  • backend/src/emails/send.ts — template loader (YAML frontmatter) + transport façade (Resend wires via setEmailTransport())

  • backend/src/jobs/scheduler.ts — in-process job scheduler shaped like pg-boss (scheduleJob / startScheduler)

Backend routes added:

  • POST /feedback — writes to feedback table

  • GET /billing/balance /billing/history /billing/usage

  • POST /admin/users/:id/suspend /admin/users/:id/credit, GET /admin/audit-log (with admin_audit_log writes)

  • GET /subprocessors — public list

Extension surfaces:

  • extensions/omega-core/src/skills/postProcessors.ts — JSON → markdown for /review, /security-scan, /fix, /debug

  • extensions/omega-core/src/welcome.ts — one-time welcome view

  • 3 VS Code commands: omega.pickPacks, omega.byok, omega.sendFeedback

  • Engine integrates post-processors transparently

Wiring:

  • backend/src/index.ts loads email templates + premium packs + starts scheduler + schedules orphan-cleanup job + registers 4 new routes

Tests (now 46 passing across 8 files):

  • backend/src/byok.test.ts — 5 tests

  • backend/src/emails/send.test.ts — 3 tests

  • backend/src/jobs/scheduler.test.ts — 3 tests

Changed (Master Plan completion pass)

  • extensions/omega-core/src/extension.ts — old plain-text welcome notification removed; dedicated welcome view via showWelcomeOnce()
  • extensions/omega-core/src/skills/engine.ts — pipeline applies postProcessForSkill(slug, raw) after step chain

Added (Real-adapters + CLI + Phase 4/5 + marketing site + Docker)

Real adapters (replace no-op defaults at startup):

  • backend/src/db/pg-pool.ts — pg-backed DbPool with proper transaction support

  • backend/src/auth/clerk-adapter.ts — Clerk JWT verifier via @clerk/backend

  • backend/src/stripe/verifier.ts — Stripe webhook signature verifier

  • backend/src/stripe/handlers.ts — 7 handlers (subscription create/update/delete, invoice paid/failed, payment_intent succeeded, charge refunded, charge dispute) — writes to subscriptions + credit_transactions + emits PostHog events + sends Resend emails

  • backend/src/emails/resend-adapter.ts — Resend EmailTransport

  • backend/src/analytics/posthog-adapter.ts — PostHog Emitter

  • backend/src/observability/better-stack.ts — Fastify logger config (structured JSON for Better Stack ingestion)

  • backend/src/jobs/pg-boss-scheduler.ts — pg-boss Runner (replaces in-process scheduler in production)

Startup wiring:

  • backend/src/bootstrap.tsbootstrapAdapters() lazy-requires each adapter only if its env var is set; returns a typed BootstrapReport. Centralized startup.

AST skill catalog extractor:

  • scripts/export-skill-catalog.ts — TypeScript Compiler API walk of registry.ts. Extracts 43 skills (slug, category, modelTier, requiredTier, cacheable, systemPrompt, userPromptTemplate). Outputs backend/out/skill-catalog.json + backend/out/server-skills.json. Resolves the single-source-of-truth open question.

Phase 4 — Docs Engine (production-ready):

  • extensions/omega-core/src/docs/engine.ts — SQLite-backed (better-sqlite3 lazy-required), AI-generated per-file docs via the ModelRouter, content-hash staleness detection, full-workspace refresh job, FTS5 search

  • Wired to omega.openDocs command with Quick Pick UI (refresh all / active file / search)

Phase 5 — Agent Orchestrator (production-ready):

  • extensions/omega-core/src/agents/orchestrator.ts — Opus-driven goal decomposition into parallel role-specific tasks (architect, coder, reviewer, tester, docs-writer, security-auditor), Promise.all dispatch, Opus-driven synthesis

  • Wired to omega.startTeam command

Cost Dashboard webview:

  • extensions/omega-core/src/costDashboard.ts — session totals, per-skill breakdown, recent runs table, auto-updates via onSkillExecuted

  • Wired to omega.openCostDashboard command

Omega CLI (new workspace at cli/):

  • cli/src/index.ts — full CLI with 12 skills, BYOK mode, gateway routing, pretty-print + JSON output, omega login, omega skills, omega packs, omega commit (auto-reads git diff --cached), omega branch-name

  • cli/package.json with bin: { omega: out/index.js } for npm link

  • Added cli to root workspaces array

Production Docker:

  • backend/Dockerfile — multi-stage build, non-root user (uid 1001), HEALTHCHECK, pinned node:20-bookworm-slim

  • backend/.dockerignore

  • docker-compose.prod.yml — Postgres 16 + Redis 7 + gateway with named volumes, health checks, env-driven secrets

  • backend/scripts/migrate.ts — idempotent migration runner via schema_migrations table

Marketing site (static, no JS, Cloudflare Pages-ready):

  • marketing/site/index.html — hero + features + comparison table + FAQ

  • marketing/site/pricing.html — 5 tier cards + top-ups + FAQ

  • marketing/site/security.html — security overview + vulnerability disclosure

  • marketing/site/styles.css — dark theme, mobile-responsive

  • marketing/site/.well-known/security.txt — RFC 9116

Legal:

  • docs/legal/DPA_TEMPLATE.md — GDPR Article 28 DPA draft with Annex A/B/C

  • docs/legal/AUP.md — Acceptable Use Policy draft

  • docs/legal/VULNERABILITY_DISCLOSURE.md — security disclosure policy with response targets

Tests (now 59 passing across 12 files):

  • backend/src/bootstrap.test.ts — bootstrap report shape + env-driven behavior

  • backend/src/gateway/fraud.test.ts — 5 tests for rule engine (disposable email, burst usage, case-insensitive matching)

  • backend/src/analytics/events.test.ts — emitter façade, event capture, flush

  • backend/src/db/pool.test.ts — DbPool proxy forwards calls to registered impl

Dependencies installed: pg, @anthropic-ai/sdk, stripe, @clerk/backend, pg-boss, ioredis, resend, posthog-node, drizzle-orm, pino-pretty

Changed (Real-adapters pass)

  • backend/src/gateway/skills.ts — loads server-side skills from backend/out/server-skills.json at module load; falls back to bootstrap stub if catalog absent
  • extensions/omega-core/src/extension.tsomega.openDocs and omega.startTeam now run real implementations instead of placeholder notifications; added omega.openCostDashboard command and event subscription that feeds trackSkillRun
  • package.json — added cli to workspaces

Added (Chat panel + Balance widgets + Provisioning + 5 more premium packs + 4 marketing pages + 98 tests)

IDE surfaces:

  • Chat panel (Cmd+Shift+I) — full conversational UI in extensions/omega-core/src/chat/{types,transport,panel}.ts. Slash-command interception dispatches to SkillEngine; free text streams via ModelRouter. Sessions persisted in workspaceState for 7 days. Markdown-lite renderer (code fences, inline code, headings, paragraphs).

  • Balance widgetextensions/omega-core/src/balance/display.ts polls /billing/balance every 60s with a status-bar item. extensions/omega-core/src/balance/history.ts opens a webview with 30-day usage history + transaction log.

  • 5 new commands in contributes: omega.openCostDashboard, omega.openChat, omega.pickPacks, omega.byok, omega.sendFeedback, omega.showBalance (plus 2 keybindings: Cmd+Shift+A Run Skill, Cmd+Shift+I Open Chat)

  • omega.byok posts encrypted key to /billing/byok (Pro+ tier-gated)

  • omega.sendFeedback POSTs to /feedback with offline buffering on network failure

Production infrastructure:

  • scripts/provision.sh — Ubuntu 24.04 VPS bootstrap (idempotent; hardens SSH, ufw, fail2ban; installs Postgres 16, Redis 7, Node 20 NodeSource, Docker, certbot, pgBackRest; creates omega user + systemd unit)

  • scripts/deploy.sh — image pull → migrations → service restart → health check → rollback on failure

  • scripts/backup.sh — pgBackRest base backup + rclone to Backblaze B2 + monthly restore verification

  • nginx.conf — reverse proxy with rate-limit zone for /skills/run, raw-body passthrough for Stripe webhooks, streaming proxy buffers off, security headers

  • .github/workflows/release.yml — tag-triggered: build + push gateway Docker image to GHCR + package VSIX installers for macOS/Windows/Linux + GitHub release with notes

  • .github/workflows/deploy.yml — release-triggered: SSH to VPS + run deploy.sh + health-verify + Discord notification

5 more premium Domain Packs (catalog now 5 free + 10 premium):

  • backend/packs/premium/crypto.md — Web3, reentrancy, MEV, oracle manipulation, gas patterns

  • backend/packs/premium/edtech.md — FERPA, COPPA, accessibility, SIS/LMS/LTI

  • backend/packs/premium/legaltech.md — privilege, chain of custody, conflict checks

  • backend/packs/premium/logistics.md — carrier APIs, hazmat, customs, hours-of-service

  • backend/packs/premium/iot.md — MQTT security, OTA updates, time-series telemetry

4 new marketing pages:

  • marketing/site/docs/index.html — docs landing

  • marketing/site/download.html — installers + system requirements

  • marketing/site/changelog.html — user-facing release notes

  • marketing/site/legal/subprocessors.html — GDPR Article 28 disclosure

5 skill eval test suites (54 cases total) per Master Plan §34.27:

  • scripts/eval-cases/{review,security-scan,fix,debug,commit}.json (12+12+10+10+10) + README

Backend endpoints:

  • POST /billing/byok — store encrypted BYOK key (Pro+ tier gate, AES-256-GCM)

  • DELETE /billing/byok/:provider — clear stored key

Integration test scaffold:

  • backend/docker-compose.test.yml — Postgres 16 + Redis 7 with tmpfs for fast CI

  • backend/vitest.config.ts — excludes *.integration.test.ts from default yarn test

  • backend/vitest.integration.config.ts — separate config for integration tests

  • backend/src/gateway/reserve.integration.test.ts — 4 cases against real Postgres covering reservation/refund/reconciliation + SELECT FOR UPDATE concurrency

Tests (now 98 across 16 files):

  • Backend: 60 unit (13 files) — money, rates, prompts, packs, rate-limit, response-cache, byok, emails, scheduler, bootstrap, fraud, analytics events, db pool

  • Extension (omega-core, vitest added): 19 (2 files) — postProcessors.test.ts (9), chat/transport.test.ts (10)

  • CLI: 19 (1 file) — helpers.test.ts covering detectLanguage, applyTemplate, parseArgs, prettyPrint

Changed (Chat + Balance + Provisioning pass)

  • CLAUDE.md — Phase 4 + Phase 5 marked DONE; Phase 6 (UI polish) listed as NEXT; Ubuntu 24.04 LTS LOCKED note added
  • extensions/omega-core/package.json — added vitest dep + script + 7 commands + 2 keybindings in contributes
  • extensions/omega-core/src/extension.ts — wired chat, balance, cost dashboard commands; 5 more pack slugs in omega.pickPacks; BYOK posts to /billing/byok; feedback posts to /feedback
  • backend/src/routes/billing.ts — added BYOK routes
  • backend/package.jsontest:integration, test:all, migrate scripts
  • cli/package.json — vitest dep + test script
  • cli/src/index.ts — deduplicated helpers (imports from ./helpers)
  • backend/packs/premium/README.md — bumped from 5 to 10 premium packs

Fixed (Chat + Balance + Provisioning pass)

  • CLI test discovery was double-running tests against compiled out/ — fixed by adding cli/vitest.config.ts excluding out/
  • backend/src/balance/history.ts (extension) — TS strict-mode never-typed empty object literal fixed by extracting named type

[0.2.0] — 2026-05-05

Phase 1: VS Code Fork & Extension Scaffold — Rebranded VS Code fork + full TypeScript extension scaffold with all 4 AI layers stubbed out.

Added

  • VS Code fork — Shallow clone of microsoft/vscode at vscode/. Rebranded via product.json:
- nameShort → "Omega", nameLong → "Omega IDE", applicationName → "omega" - dataFolderName → ".omega", urlProtocol → "omega" - All Win32/macOS/Linux identity strings updated - GitHub Copilot defaultChatAgent removed (replaced by Omega's own AI layer)
  • Model Router (extensions/omega-core/src/models/) — Full TypeScript implementation:
- types.tsIModelProvider, ModelRequest, ModelResponse, StreamChunk, CostEntry - router.tsModelRouter singleton with provider registry, prefix-based routing, retry/fallback - cost-tracker.ts — SQLite-backed cost tracking, VS Code status bar integration - providers/claude.ts — Anthropic SDK adapter with streaming + prompt caching - providers/openai.ts — OpenAI SDK adapter with streaming - providers/gemini.ts — Google Generative AI adapter with streaming - providers/ollama.ts — Ollama REST adapter with local model discovery
  • Skills Engine (extensions/omega-core/src/skills/) — Full TypeScript implementation:
- types.ts — All skill interfaces: Skill, SkillStep, SkillContext, SkillResult - engine.tsSkillEngine singleton: registration, context gathering, step pipeline, output rendering - registry.ts — 25 built-in skills across 7 categories pre-registered - sdk.ts — Public SDK with defineSkill(), ContextPresets, PostProcessors
  • Agent & Docs type scaffolds — Interface definitions for Phase 4/5 work:
- extensions/omega-core/src/agents/types.ts - extensions/omega-core/src/docs/types.ts
  • Extension entry pointextensions/omega-core/src/extension.ts wires up all components on activation
  • Backend servicebackend/src/index.ts — Fastify server on port 3737, health endpoint live, skill/agent endpoints stubbed for Phase 3/5
  • Workspace tooling — Root package.json (yarn workspaces), tsconfig.base.json, .gitignore, scripts/ (build, package-win, launch-dev, dev-setup)

[0.1.0] — 2026-05-05

Phase 0: Foundations — Project scaffolding, documentation, and tooling.
No production code ships in this version. All deliverables are documentation,
architectural records, and the Claude Code agent skill system.

Added

  • Project documentation suite — Complete initial documentation written:
- README.md — Project overview, vision, feature roadmap, quickstart guide, architecture summary, and contribution guidelines - docs/components/SKILLS_ENGINE.md — Component reference for Skills Engine - docs/components/DOCS_ENGINE.md — Component reference for Docs Engine - docs/components/AGENT_ORCHESTRATOR.md — Component reference for Agent Orchestrator - docs/components/MODEL_ROUTER.md — Component reference for Model Router - docs/api/SKILLS_SDK.md — Full Skills SDK reference with TypeScript interfaces, annotated examples, testing guide, and marketplace publishing workflow - docs/api/AGENTS_API.md — Full Agents API reference with all interfaces, TeamOrchestrator, WorkerAgent, AgentPool, TaskQueue, dashboard event protocol, and custom role guide - docs/api/MODELS_API.md — Full Models API reference with IModelProvider interface, all provider configs, CostTracker API, custom provider walkthrough, and model capability matrix - CHANGELOG.md — This file; version history in Keep a Changelog format - DEVLOG.md — Developer log with all initial architectural decisions, decision registry, and open questions
  • Claude Code agent skills — 8 project-local skills in .claude/skills/:
- create-component-doc.ts — Generates component reference documentation - update-changelog.ts — Adds a CHANGELOG entry from git diff context - log-decision.ts — Appends a structured decision entry to DEVLOG.md - review-architecture.ts — Reviews architectural consistency across docs - generate-api-reference.ts — Generates API reference from TypeScript interfaces - check-doc-coverage.ts — Identifies undocumented exports in source files - sync-interfaces.ts — Validates that API docs match source type definitions - scaffold-skill.ts — Scaffolds a new custom skill from a template
  • Project structure scaffolding — Repository layout established:
- extensions/omega-core/src/skills/ — Skills Engine source directory - extensions/omega-core/src/docs/ — Docs Engine source directory - extensions/omega-core/src/agents/ — Agent Orchestrator source directory - extensions/omega-core/src/models/ — Model Router source directory - backend/ — Node.js backend service directory - vscode/ — VS Code fork directory (submodule placeholder) - docs/api/ — API reference documentation - docs/components/ — Component documentation - .claude/skills/ — Project-local Claude Code skills
  • CHANGELOG.md — This file; version history tracking from day one
  • DEVLOG.md — Running developer log with:
- Session 1 entry: all Phase 0 architectural decisions and rationale - "How to use this log" guidelines for contributors and agents - Decision Registry: indexed summary of all major decisions - Open Questions: unresolved architectural and product questions

[0.2.0] — _Planned: Phase 1_

VS Code Fork + Rebrand
Fork microsoft/vscode, apply Omega IDE branding, establish build pipeline.

Planned additions

  • Fork microsoft/vscode at a pinned stable tag (target: 1.92.x)
  • Rename product: Omega IDE — update all product strings, icons, window title
  • Custom welcome screen and onboarding flow
  • Omega status bar item showing model/cost info
  • omega-core extension skeleton: package.json, extension.ts, activation events
  • CI pipeline: GitHub Actions build for Windows, macOS, Linux
  • Nightly build artifacts published to GitHub Releases
  • Branding assets: logo, icon set, color tokens

[0.3.0] — _Planned: Phase 2_

Model Router MVP
Multi-provider model routing with cost tracking and streaming.

Planned additions

  • ModelRouter class with provider dispatch and retry logic
  • AnthropicProvider — Claude Opus 4.5, Sonnet 4.5, Haiku 4.5
  • OpenAIProvider — GPT-4o, GPT-4o mini, o1, o3-mini
  • GeminiProvider — Gemini 2.0 Pro, Flash, Flash Lite
  • OllamaProvider — Local model support via Ollama HTTP API
  • CostTracker — Per-session and per-task cost recording and reporting
  • VS Code settings integration for provider API keys
  • Status bar cost display
  • Model selector quick-pick command
  • Provider health check command
  • Unit tests: all providers, router dispatch, cost tracking

[0.4.0] — _Planned: Phase 3_

Skills Engine MVP
Slash-command skill system with built-in skills and custom skill loading.

Planned additions

  • SkillEngine — Core execution engine
  • Skill interface and all supporting types (SkillStep, SkillContext, etc.)
  • SkillRegistry — Registration and lookup
  • SkillLoader — File-system based loading from .claude/skills/ and global paths
  • Handlebars template engine for prompt rendering
  • ContextType gathering: ActiveFile, Selection, Workspace, Git, Diagnostics
  • OutputTarget rendering: Panel, InlineReplace, InlineDecoration, File, Clipboard, Chat
  • 30+ built-in skills including:
- /review — Code review - /explain — Explain selected code - /refactor — Refactor with rationale - /test — Generate unit tests - /docs — Generate JSDoc/docstrings - /fix — Fix compiler errors - /commit — Generate commit message - /pr-summary — Summarize pull request changes - /translate-comments — Translate comments to another language - And 21 more
  • Skills Playground Webview
  • @omega-ide/skills-sdk npm package (stub + types)
  • Hot reload of .claude/skills/ on file save
  • Skills marketplace infrastructure (read-only browse, no install yet)

[0.5.0] — _Planned: Phase 4_

Docs Engine MVP
AI-powered workspace documentation generation and search.

Planned additions

  • DocsGenerator — Orchestrates documentation generation for a workspace
  • FileWatcher — Monitors source files for changes requiring doc updates
  • Indexer — FlexSearch-based full-text search over generated docs
  • DocsWebviewPanel — Browse and search generated documentation in IDE
  • SQLite storage for docs index (via better-sqlite3)
  • Auto-generation triggers: on file save, on git commit
  • Support for TypeScript, JavaScript, Python, Markdown source files
  • Docs coverage report command
  • Export docs as static HTML site

[0.6.0] — _Planned: Phase 5_

Multi-Agent Teams MVP
Parallel agent orchestration with dashboard UI.

Planned additions

  • TeamOrchestrator — Goal decomposition and agent coordination (Claude Opus)
  • WorkerAgent — Specialized task execution with configurable roles
  • AgentPool — Worker lifecycle management and scheduling
  • TaskQueue — Priority queue with dependency tracking
  • Agent Dashboard Webview — Real-time progress, per-agent output, cost breakdown
  • Built-in agent roles: planner, coder, reviewer, tester, documenter, security, architect
  • Custom role registration API
  • @omega-ide/agents-sdk npm package
  • Integration with Skills Engine (agents callable from skills)
  • Rate limit awareness and adaptive concurrency

[1.0.0] — _Planned: Phase 6_

UI Polish + Public Release
Production-quality UI, onboarding, telemetry, and public release.

Planned additions

  • Polished Omega chat panel UI (React + VS Code Webview Toolkit)
  • Onboarding wizard: API key setup, first skill walkthrough
  • Skills Marketplace: browse, install, and publish skills
  • Telemetry (opt-in): anonymous usage data to improve built-in skills
  • Extension signing and Marketplace distribution
  • Documentation site (omega-ide.dev)
  • VS Code Marketplace listing
  • GitHub Releases with signed installers for Windows, macOS, Linux
  • Pricing model implementation (free tier + Pro subscription)
  • Support for VS Code extension ecosystem compatibility

[Unreleased]: https://github.com/omega-ide/omega-ide/compare/v0.1.0...HEAD
[0.1.0]: https://github.com/omega-ide/omega-ide/releases/tag/v0.1.0
[0.2.0]: https://github.com/omega-ide/omega-ide/releases/tag/v0.2.0
[0.3.0]: https://github.com/omega-ide/omega-ide/releases/tag/v0.3.0
[0.4.0]: https://github.com/omega-ide/omega-ide/releases/tag/v0.4.0
[0.5.0]: https://github.com/omega-ide/omega-ide/releases/tag/v0.5.0
[0.6.0]: https://github.com/omega-ide/omega-ide/releases/tag/v0.6.0
[1.0.0]: https://github.com/omega-ide/omega-ide/releases/tag/v1.0.0