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 (nocreate-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. SharedNav+ 5-columnFooterper the website plan. /downloadserver component readsversions.jsonfrom Hetzner #2 withrevalidate: 300. Detects user OS viaUser-Agentto highlight the primary install button; falls back to a baked-in manifest (also pointing atomegahq.dev/downloads/..., never GitHub) when the live fetch fails./changelogrenders/CHANGELOG.mdat build time via an inline 40-line markdown renderer — keeps the bundle dep-free (react-markdownwould be ~80 KB for a single page).- Brand placeholder mechanism — single source of truth at
website/src/config/brand.tsreadingprocess.env.BRAND_NAME. The placeholder violet#7C3AEDlives in exactly three files (SVG + brand config + Tailwind palette); brand rename is a three-line PR. /robots.txtvia 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.svgsource viarsvg-convert— one SVG, one IDE icon, one OG image, one favicon set. - Root scripts
yarn website:dev/yarn website:build/yarn website:start—omega-websiteadded to the rootworkspacesarray.
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 pipeline —
scripts/setup-vscode-fork.sh(one-time shallow clone of microsoft/vscode + jq-merge of branding overlay),scripts/build.shrewritten end-to-end (idempotent rsync ofomega-core→vscode/extensions/omega-core, per-workspace compile, gatedyarn installinvscode/, fork compile),scripts/package-installer.sh <platform>wrapsyarn gulp vscode-<platform>for win32-x64 / darwin-x64 / darwin-arm64 / linux-x64 / linux-arm64. - Branding overlay —
tools/branding/product.overlay.json(nameShort, bundle IDs, download/update URLs, win32 app IDs) merged into the fork'sproduct.jsonby setup script. - Real Omega icons —
tools/branding/icons/omega.svg(PLACEHOLDER Ω + purple gradient pending final brand) + generatortools/icons/generate-icons.sh(rsvg-convert + ImageMagick + iconutil/png2icns). Generatedcode.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.ymlrewritten:
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/:platformreads live versions.json from Hetzner #2 —UPDATES_VERSIONS_JSON_URLenv opt-in, 5-min in-memory cache, graceful fallback to inline manifest on fetch failure. All inline URLs purged of GitHub Releases — now point toomegahq.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@v2step. 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.shwent 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 viaglobalThis.fetchwith__omegaTestHooksfor 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 viaemail_send_logunique(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 returnsnullwhen 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_jobsqueue;usage_events.batchflag; 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 —
/commitand/explainfully migrated: new prompts withOUTPUT FORMATblocks + token budgets,postProcessfence-strippers, dedicated renderers inpostProcessors.ts, 11 new unit tests, 12-case eval set for/explaininscripts/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/:platformendpoint (from prior round) — IDE auto-update polling.
Changed (2026-05-16)
handleInvoiceFailednow writes apayment_failure_eventsanchor row so the dunning scheduler has its day-0 timestamp.scripts/validate-pack.tsanti-pattern regex relaxed —\bafterbugwas incorrectly rejecting plural "common bugs".backend/src/bootstrap.tswires the 6 new Stripe handlers whenSTRIPE_SECRET_KEYis set.backend/src/index.tsschedules 3 new jobs:dunning(15 min),daily-reconcile(24 h),batch-runner(5 min).- E2E test files use
.e2e.tssuffix (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 metadata —
modelTier(haiku/standard/premium/long-context),requiredTier(free/starter/standard/pro), andcacheableon everySkill. Gateway uses these for routing and pricing decisions. - Skill categories —
devopsandutilitiesadded toSkillCategory. - 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.ts — reserveCredits() with SELECT FOR UPDATE row lock (§50.2)
- reconcile.ts — reconcile() with 1.3× margin multiplier (§50.3 / L30)
- prompts.ts — buildPrompt() cache-friendly assembly with Domain Pack concatenation (§50.7)
- router.ts — selectProvider() health-aware fallback chain + modelForTier() (§50.8)
- orchestrator.ts — runSkillOnGateway() 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) —BigIntarithmetic 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 forusers,usage_events,credit_transactions,credit_reservations,subscriptions,fraud_events,stripe_webhook_events, plusreconciliation_logfor §50.10. - DB pool abstraction (
backend/src/db/pool.ts) —setDbImpl()for testability withoutpgdependency yet. - Background jobs:
jobs/orphan-cleanup.ts — cleanupExpiredReservations() refunds expired holds (§50.11)
- jobs/daily-reconcile.ts — runDailyReconciliation() drift check, 0.5%/2% alerts (§50.10)
- Stripe webhook handler (
backend/src/routes/stripe-webhook.ts) — idempotency dedup viastripe_webhook_events; pluggable verifier + event handler registry (§50.9). - Skill run route (
backend/src/routes/skill-run.ts) —POST /skills/runwired 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 —
/healthreports skill/pack counts;/skillslists registered skills with tiers;/packslists loaded packs.
Changed
securityskill →security-scanto match Master Plan §34 catalog. The previous name was non-canonical.omega.runSkillUI — flat picker replaced with category-grouped picker.renderTemplate()inskills/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'scache_control: ephemeralis 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 ``typescriptcode 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 / HIPAAbackend/packs/premium/finance.md— Finance / Compliancebackend/packs/premium/banking.md— Banking / payment railsbackend/packs/premium/government.md— Public sector / accessibilitybackend/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 failurebackend/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 viasetEmitter()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 runbackend/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 scanbackend/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 behaviorbackend/src/gateway/response-cache.test.ts— 6 tests for cache key + storage + TTLbackend/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 × likelihooddocs/INVESTOR_RELATIONS.md(§28) — cadence, decision rights, monthly memo templatedocs/ROADMAP.md(§29) — 2026-2028+ plandocs/PRICING_MATH.md(§31 Appendix A) — worked unit economicsdocs/VENDOR_SETUP.md(§32) — week-by-week vendor onboardingdocs/STRIPE_SETUP.md(§33) — products, prices, webhooks, taxdocs/FINANCIAL_PROJECTIONS.md(§41) — Year-1 conservative / aggressive / beardocs/HIRING_PLAN.md(§42) — when/who/cadence; default hire #1 is supportdocs/TEST_STRATEGY.md(§45) — pyramid; what we don't testdocs/DECISION_FRAMEWORKS.md(§46) — 10 frameworks for recurring decisionsdocs/COMPETITIVE_MATRIX.md(§52) — vs Cursor / Windsurf / Copilot detailed comparisondocs/SUBPROCESSORS.md— GDPR Article 28 disclosure list
Backend runtime additions:
backend/src/gateway/fraud.ts— fraud rule engine (5 rules); persists tofraud_eventsbackend/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 viasetEmailTransport())backend/src/jobs/scheduler.ts— in-process job scheduler shaped like pg-boss (scheduleJob/startScheduler)
Backend routes added:
POST /feedback— writes tofeedbacktableGET /billing/balance/billing/history/billing/usagePOST /admin/users/:id/suspend/admin/users/:id/credit,GET /admin/audit-log(withadmin_audit_logwrites)GET /subprocessors— public list
Extension surfaces:
extensions/omega-core/src/skills/postProcessors.ts— JSON → markdown for/review,/security-scan,/fix,/debugextensions/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.tsloads email templates + premium packs + starts scheduler + schedulesorphan-cleanupjob + registers 4 new routes
Tests (now 46 passing across 8 files):
backend/src/byok.test.ts— 5 testsbackend/src/emails/send.test.ts— 3 testsbackend/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 viashowWelcomeOnce()extensions/omega-core/src/skills/engine.ts— pipeline appliespostProcessForSkill(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-backedDbPoolwith proper transaction supportbackend/src/auth/clerk-adapter.ts— Clerk JWT verifier via@clerk/backendbackend/src/stripe/verifier.ts— Stripe webhook signature verifierbackend/src/stripe/handlers.ts— 7 handlers (subscription create/update/delete, invoice paid/failed, payment_intent succeeded, charge refunded, charge dispute) — writes tosubscriptions+credit_transactions+ emits PostHog events + sends Resend emailsbackend/src/emails/resend-adapter.ts— ResendEmailTransportbackend/src/analytics/posthog-adapter.ts— PostHogEmitterbackend/src/observability/better-stack.ts— Fastify logger config (structured JSON for Better Stack ingestion)backend/src/jobs/pg-boss-scheduler.ts— pg-bossRunner(replaces in-process scheduler in production)
Startup wiring:
backend/src/bootstrap.ts—bootstrapAdapters()lazy-requires each adapter only if its env var is set; returns a typedBootstrapReport. Centralized startup.
AST skill catalog extractor:
scripts/export-skill-catalog.ts— TypeScript Compiler API walk ofregistry.ts. Extracts 43 skills (slug, category, modelTier, requiredTier, cacheable, systemPrompt, userPromptTemplate). Outputsbackend/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 theModelRouter, content-hash staleness detection, full-workspace refresh job, FTS5 search- Wired to
omega.openDocscommand 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.alldispatch, Opus-driven synthesis- Wired to
omega.startTeamcommand
Cost Dashboard webview:
extensions/omega-core/src/costDashboard.ts— session totals, per-skill breakdown, recent runs table, auto-updates viaonSkillExecuted- Wired to
omega.openCostDashboardcommand
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-readsgit diff --cached),omega branch-namecli/package.jsonwithbin: { omega: out/index.js }fornpm link- Added
clito root workspaces array
Production Docker:
backend/Dockerfile— multi-stage build, non-root user (uid 1001), HEALTHCHECK, pinnednode:20-bookworm-slimbackend/.dockerignoredocker-compose.prod.yml— Postgres 16 + Redis 7 + gateway with named volumes, health checks, env-driven secretsbackend/scripts/migrate.ts— idempotent migration runner viaschema_migrationstable
Marketing site (static, no JS, Cloudflare Pages-ready):
marketing/site/index.html— hero + features + comparison table + FAQmarketing/site/pricing.html— 5 tier cards + top-ups + FAQmarketing/site/security.html— security overview + vulnerability disclosuremarketing/site/styles.css— dark theme, mobile-responsivemarketing/site/.well-known/security.txt— RFC 9116
Legal:
docs/legal/DPA_TEMPLATE.md— GDPR Article 28 DPA draft with Annex A/B/Cdocs/legal/AUP.md— Acceptable Use Policy draftdocs/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 behaviorbackend/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, flushbackend/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 frombackend/out/server-skills.jsonat module load; falls back to bootstrap stub if catalog absentextensions/omega-core/src/extension.ts—omega.openDocsandomega.startTeamnow run real implementations instead of placeholder notifications; addedomega.openCostDashboardcommand and event subscription that feedstrackSkillRunpackage.json— addedclito 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 inextensions/omega-core/src/chat/{types,transport,panel}.ts. Slash-command interception dispatches toSkillEngine; free text streams viaModelRouter. Sessions persisted inworkspaceStatefor 7 days. Markdown-lite renderer (code fences, inline code, headings, paragraphs). - Balance widget —
extensions/omega-core/src/balance/display.tspolls/billing/balanceevery 60s with a status-bar item.extensions/omega-core/src/balance/history.tsopens 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+ARun Skill,Cmd+Shift+IOpen Chat) omega.byokposts encrypted key to/billing/byok(Pro+ tier-gated)omega.sendFeedbackPOSTs to/feedbackwith 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; createsomegauser + systemd unit)scripts/deploy.sh— image pull → migrations → service restart → health check → rollback on failurescripts/backup.sh— pgBackRest base backup + rclone to Backblaze B2 + monthly restore verificationnginx.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 patternsbackend/packs/premium/edtech.md— FERPA, COPPA, accessibility, SIS/LMS/LTIbackend/packs/premium/legaltech.md— privilege, chain of custody, conflict checksbackend/packs/premium/logistics.md— carrier APIs, hazmat, customs, hours-of-servicebackend/packs/premium/iot.md— MQTT security, OTA updates, time-series telemetry
4 new marketing pages:
marketing/site/docs/index.html— docs landingmarketing/site/download.html— installers + system requirementsmarketing/site/changelog.html— user-facing release notesmarketing/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 CIbackend/vitest.config.ts— excludes*.integration.test.tsfrom defaultyarn testbackend/vitest.integration.config.ts— separate config for integration testsbackend/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.tscovering 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 addedextensions/omega-core/package.json— added vitest dep + script + 7 commands + 2 keybindings incontributesextensions/omega-core/src/extension.ts— wired chat, balance, cost dashboard commands; 5 more pack slugs inomega.pickPacks; BYOK posts to/billing/byok; feedback posts to/feedbackbackend/src/routes/billing.ts— added BYOK routesbackend/package.json—test:integration,test:all,migratescriptscli/package.json— vitest dep + test scriptcli/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 addingcli/vitest.config.tsexcludingout/ backend/src/balance/history.ts(extension) — TS strict-modenever-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/vscodeatvscode/. Rebranded viaproduct.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.ts — IModelProvider, ModelRequest, ModelResponse, StreamChunk, CostEntry
- router.ts — ModelRouter 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.ts — SkillEngine 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 point —
extensions/omega-core/src/extension.tswires up all components on activation - Backend service —
backend/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:
[0.2.0] — _Planned: Phase 1_
VS Code Fork + Rebrand
Fork microsoft/vscode, apply Omega IDE branding, establish build pipeline.
Planned additions
- Fork
microsoft/vscodeat 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-coreextension 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
ModelRouterclass with provider dispatch and retry logicAnthropicProvider— Claude Opus 4.5, Sonnet 4.5, Haiku 4.5OpenAIProvider— GPT-4o, GPT-4o mini, o1, o3-miniGeminiProvider— Gemini 2.0 Pro, Flash, Flash LiteOllamaProvider— Local model support via Ollama HTTP APICostTracker— 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 engineSkillinterface and all supporting types (SkillStep, SkillContext, etc.)SkillRegistry— Registration and lookupSkillLoader— File-system based loading from.claude/skills/and global paths- Handlebars template engine for prompt rendering
ContextTypegathering: ActiveFile, Selection, Workspace, Git, DiagnosticsOutputTargetrendering: 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-sdknpm 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 workspaceFileWatcher— Monitors source files for changes requiring doc updatesIndexer— FlexSearch-based full-text search over generated docsDocsWebviewPanel— 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 rolesAgentPool— Worker lifecycle management and schedulingTaskQueue— 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-sdknpm 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