Releases: realchendahuang/OMPChamber
Releases · realchendahuang/OMPChamber
Release list
OMPChamber v2.0.4
[2.0.4] - 2026-08-12
- Real multi-session support for the OMP engine. The adapter's
GET /api/session,GET /api/session/:id, andDELETE /api/session/:idendpoints now read from the OMP on-disk session store (session-store.js+session-manager.js), merging live sessions into the list. Deleted sessions remove their companion subagent directories; missing files return 404; active-session deletion behavior is explicitly defined and tested. - Command output appears in the chat timeline. OMP
command_outputframes are normalized and bridged asompchamber:command-outputSSE events; the UI sync layer consumes them as synthetic assistant messages with replay deduplication and parent-message attribution. - Plan file paths fully OMP-branded.
PlanViewand the server fs guard now use.omp/plansand~/.omp/plansconsistently. - Settings keys fully renamed with no legacy fallback.
opencodeBinary→ompBinary,showOpenCodeUpdateNotifications→showOmpUpdateNotifications,openCodeUpdateToastDismissedVersion→ompUpdateToastDismissedVersion; the localStorage dismissal key is nowomp-update-toast-dismissed-version. TheOPENCODE_BINARYenv fallback was removed from binary resolution and the CLI preflight. - Dead OpenCode branch-prefix workarounds removed. The sidebar path normalizer no longer special-cases
opencode/, andGitViewno longer tries to fix a self-referentialopencode/branch. - Polish: tightened internal
session-storeexports; dead-code scan holds at the 2 pre-existing unused files (smoke-test.mjsandtool-normalizer.js).
OMPChamber v2.0.3
[2.0.3] - 2026-08-12
- Windows desktops can now run the bundled OMP engine. The staged launcher was a POSIX
shscript thatCreateProcesscannot execute, so bundled OMP could never spawn on Windows.prepare-omp-clinow always writes both anompsh launcher and anomp.cmdbatch launcher, the Electron main process resolvesomp.cmdon win32, and the server's process manager spawns.cmd/.batbinaries through the shell (windowsHideset). - Server endpoints that faked data now serve the real OMP engine, verified against the actual
omp/17.2.12binary:/api/commandlists real OMP commands (get_available_commands, with liveompchamber:available-commandsSSE updates) and slash-command execution works via the prompt path;POST /api/session/:id/shellruns through the OMPbashRPC;/summarizealiases compaction;/forkand/branchuseget_branch_messages+branch(entryId)(the previous no-argbranchcall always failed against real OMP);/api/global/versionand/api/global/healthreport the real engine version instead of a hardcoded1.0.0; session status derives busy/idle from turn lifecycle events reconciled againstget_state; the todo endpoint reflectstodo_reminderframes; and pending question/permission requests are tracked in a registry and served at/api/questionand/api/permissioninstead of hardcoded empty lists. - The custom OMP binary path setting actually works. The desktop setting (
opencodeBinary, written with a "restart to apply" prompt) was a dead write; the server now resolves the engine binary with explicit precedenceOMP_BINARYenv → persisted setting →OPENCODE_BINARY(deprecated) →ompon PATH, and logs which source won. On Electron the bundled/env binary still wins by design. - OMP engine update checks point at real OMP channels. The version feed previously queried the wrong upstream entirely (
anomalyco/opencodeon GitHub,opencode-aion npm); it now readscan1357/oh-my-pireleases and@oh-my-pi/pi-coding-agenton npm, on both the server and the VS Code extension. The obsolete Windows ARM64 self-update workaround was removed end to end. Engine self-upgrade remains disabled (bundled/pinned by design). - Installer sizes drop by ~350MB per package. The staged OMP tree ships two
onnxruntime-nodecopies with prebuilt natives for every platform;prepare-omp-clinow keeps only the target platform/arch (and removes the unused npm.bintree). Release CI passesELECTRON_BUILDER_ARCHon Windows so the arm64 cross-build prunes correctly. - Fixes: a
ReferenceErrorthat broke skill renaming (refreshOmpAfterConfigChange/clientReloadDelayMswere never destructured); the Linux AppImage verifier now importsPINNED_OMP_VERSIONinstead of a hardcoded copy that would drift on the next bump. - Copy cleanup. All "Restart OpenCode to apply" messages (server routes and the VS Code bridge, ~35 sites) now read "Restart OMPChamber to apply", and stale sidecar/OpenCode narration in user-facing strings, the PWA manifest, and comments was corrected.
OMPChamber v2.0.2
[2.0.2] - 2026-08-12
- Releases no longer require signing secrets. The macOS desktop job now produces unsigned (ad-hoc signed) DMG/ZIP artifacts when the Apple certificate secrets are absent — unsigned builds install via right-click → Open (Gatekeeper warns once). When the secrets are present, signing, the hardened-runtime/entitlement verification, and notarization run exactly as before.
- Bundled OMP tree slimmed and made portable.
prepare-omp-cliprunes compile-time-only.d.ts/.mapfiles (~13k files, ~110MB) from the staged engine — they are never read at runtime and their file count exhausted the macOS signing walk (EMFILE) — andafterPacknow copies npm's.binshims verbatim, so packaged apps no longer contain absolute symlinks into the build machine (which also broke macOS codesign). - Android falls back to a self-signed keystore. Without
ANDROID_KEYSTORE_*secrets the mobile pipeline generates a throwaway key and still ships an installable APK/AAB for sideloading. iOS TestFlight still requires paid-developer signing; the job now skips with a notice instead of failing when those secrets are missing. - npm publish skips cleanly without
NPM_TOKENinstead of failing the release run.
OMPChamber v2.0.1
[2.0.1] - 2026-08-12
- Packaged desktop apps ship the OMP engine again. electron-builder's file matcher silently dropped the bundled
omp-clinode_modulestree fromextraResources, producing installers with a launcher but no engine. The runtime is now staged byafterPack(with a hard build failure when the engine entry is missing), and the release pipeline verifies the packaged tree. - Windows packaging fixed.
prepare-omp-clinow launchesnpm.cmdthroughcmd.exe(shell: true) — batch shims cannot be executed byCreateProcessdirectly, which broke the "Prepare bundled OMP CLI" release step with no visible error. Command failures now also surface stdout/stderr in the thrown error. - Linux AppImage verification accepts the
omp/version prefix.verify-linux-appimagecompared the rawomp --versionoutput (omp/17.2.12) against the bare pinned version; it now normalizes the prefix before comparing. - Linux AppImage release builds fixed. The Go
app-builderbinary downloads the AppImage toolchain with a retry-less HTTP client that dies with a bare EOF on GitHub-hosted runners (electron-builder surfaces no error at all). Release CI now pre-seeds the toolchain cache with curl+7z so the flaky download never happens. Root-caused with an ubuntu:24.04 Docker reproduction of the release job.
OMPChamber v2.0.0
[2.0.0] - 2026-08-12
- OpenCode naming purged across the product. The UI package (~192 files), the VS Code extension, the documentation site (10 locales), the CLI, Docker assets, and developer tooling now use OMP/OMPChamber naming throughout — components, modules, types, i18n keys (11 locales), bridge message types, and user-facing strings. Historical references to OpenCode and OpenChamber (attribution, migration notes) are intentionally preserved.
- Internal HTTP contracts renamed. The OMPChamber-internal API surface moved from
/api/opencode/*to/api/omp/*(including/api/config/omp-resolution), request headers fromx-opencode-directorytox-omp-directory, and readiness flags fromisOpenCodeReadytoisOmpReady, with the server, web UI, and VS Code extension updated together. - CLI resolves the OMP binary. The
ompchamber servepreflight now resolvesOMP_BINARYfirst (withOPENCODE_BINARYhonored as a deprecated fallback) and searches PATH forompbeforeopencode; both variables are exported so every downstream consumer works. The deadOPENCODE_SKIP_START/OPENCODE_HOSToptions were removed from help and docs. - Docker and release pipelines ship OMP. The image installs the pinned
@oh-my-pi/pi-coding-agent@17.2.12CLI and exportsOMP_BINARY; the oh-my-opencode plugin installer was removed. Release CI builds, verifies, and caches the bundled OMP CLI, and the packaged desktop launcher now resolves its install location relative to itself instead of the build machine. - VS Code extension runs the OMPChamber server natively. The extension no
longer spawns the removedopencodeCLI; it bundles the OMPChamber web
server (dist/server.cjs, esbuild bundle ofpackages/web/server) and
spawns it withnodeon a loopback port, then proxies the webview to it.
All extension-side API calls now target the/apisurface: readiness
polling uses/api/global/health, the SSE event watcher reads
/api/global/event, and the git bridge (PR descriptions, conflict details)
creates sessions and prompts through the OMP adapter with plainfetch.
The@opencode-ai/sdkdependency is gone from the extension host and the
webview. Tests run withbun test --isolate(96 pass / 0 fail), which also
fixes the pre-existing cross-filemock.modulepollution. - Subagent events reach the UI. The OMP event bridge now projects
subagent_lifecycle/subagent_progress/subagent_eventframes as
ompchamber:subagentSSE events, and the sync layer consumes them into a
per-session subagent snapshot store. The work-status subagents section
renders live OMP subagent cards (label, status) merged with the
parent-session fallback used by the OpenCode ecosystem. - SSE event endpoint for the web server.
GET /api/global/eventstreams
global hub events as SSE withLast-Event-IDreplay and heartbeats, so
SSE-only consumers (VS Code extension, hosted mobile) can follow the event
stream without WebSocket support. @opencode-ai/sdkremoved from the whole repository. The last three
server modules (skill-routes / ompchamber-sessions / ompchamber-control)
now use plainfetchagainst the OMP adapter; the dependency was dropped
from root, web, and vscode workspaces and the lockfile.- Scheduled Tasks run natively on the OMP engine. The scheduled-tasks
runtime no longer depends on@opencode-ai/sdk; it creates sessions and
sends prompts through the OMP adapter's HTTP surface with plainfetch
(POST /api/session+POST /api/session/:id/prompt_async). Session
creation, command listing, and command dispatch are now injectable hooks
with OMP-aware defaults: OMP has no command surface, so slash-command
prompts resolve to no command and run as plain prompts instead of failing.