Changelog
Changes in omm and the SDK @orbito/api-lib that matter when you build a module, newest first. Entries marked Breaking need a change in your commands or code.
Update notices
omm prints a notice on stderr when a newer omm, SDK or skill is available and links here. Read the entries between your version and the latest one before you update.
omm
Update: npm i -g @orbito/omm.
omm 2.1.2 (2026-10-25)
ommwarns when the core address is the oldhttps://v2.orbito.pl/api(saved byomm login, fromOMM_COREor--core): every command that uses the core prints acorenotice ({"kind": "core", ...}innoticeswith--json) with the fixomm login --core https://my.orbi.do/api. The notice needs no network, so it is shown also offline and withOMM_NO_UPDATE_CHECK=1.- The
Access forbiddenerror after the redirect gets the same hint, and thecore-logincheck ofomm doctorreports the move aswarn. - The agent skill tells the agent to inform the human about the move, have them log in again with
omm login --core https://my.orbi.do/apiand updatev2.orbito.plin their project after they confirm. Runomm skill installto get it.
omm 2.1.1 (2026-10-25)
- The Orbito panel and API moved to
my.orbi.do; the oldv2.orbito.plredirects there. The default core address ofommis nowhttps://my.orbi.do/api. - A saved
ommsession keeps the core address it was created with. If yours points tohttps://v2.orbito.pl/api, runomm login --core https://my.orbi.do/apionce. The old address answers with a 308 redirect, butfetchdrops theAuthorizationheader when the origin changes, so authenticated calls through the redirect fail with 403Access forbidden.
omm 2.1.0 (2026-10-16)
omm solution publish [dir] | list | unpublish <slug>: business solutions, curated sets of published modules with automation templates that a company installs in one click (the automations land as disabled drafts). Only members of thecorenamespace (Orbito) can use them; anyone else gets 403 with a hint to checkomm whoami. The solution directory holdssolution.yaml, an optionalREADME.mdand cover, and automation files in theomm automation create -fformat withoutparams.__instanceId. See Business solutions (Polish).
omm 2.0.0 (2026-10-15)
- Breaking: one Orbito account. The registry has no passwords of its own:
omm loginsigns in to Orbito Core with the e-mail and password of the Orbito account (v2.orbito.pl), saves the core session and, with the same session, creates a publish token in the registry. One login fills both;omm login --coreis no longer a separate step (--core <url>only picks the core address). After updating, runomm loginagain. omm login --token <core JWT>logs in to both;omm login --token omm_...(CI) to the registry only.omm logoutrevokes the publish token and removes the core session too.- Breaking: modules belong to namespaces, not to developer accounts. The module code is
<namespace>/<slug>; every member of the namespace can create, publish and configure its modules, only the owner manages members. Existing codes do not change (Orbito's own modules are in thecorenamespace). - New
omm namespace list | create <name> | members <name> | invite <name> <email> | remove <name> <email>. An invitation for an e-mail that never used the registry turns into membership on that person's first login. omm init --namespace <name>: the namespace of the new module card; required (with--json) when the account has several. Without any namespaceomm initfails withomm namespace create <name>as the fix.omm whoami --jsonprints{ registry, id, email, name, namespaces: [{ id, name, role }] }; theregistry-logincheck ofomm doctorwarns when the account has no namespace.- Breaking:
omm company dev-tokenand the company dev-token are removed. Drafts are visible and installable for members of the module namespace in any company they belong to; the firstomm install/omm updateof a draft grants that company access for good. Other companies get access in the developer panel. The 404 hint ofinstall/updatenow points to namespace membership (omm whoami). omm repolinks are visible to every member of the module namespace.
omm 1.4.0 (2026-10-14)
omm repo,omm repo set [url](default:git remote get-url originwithout credentials),omm repo unset: the git repository link of the module card.
omm 1.3.0 (2026-10-14)
omm automation: automations of the working company without the web panel (see Company automations):list [--enabled|--disabled] [--query <text>],get <id>(graph and validation),elements [--kind trigger|action] [--query <text>],element <type>(full definition as JSON),create -f <file>(always a disabled draft;-f -reads stdin),update <id> -f <file>(never changesisEnabled),enable <id>,disable <id>,duplicate <id>,delete <id> --yes,runs [--automation <id>] [--status <status>] [--event <value>] [--limit <n>],run <runId>(steps with branch and outcome),var list,var get <key>,var set <key> <value>.
createandupdateare validated by the core as a whole graph; a rejected graph fails with 422Automation graph is invalid.--jsonerrors carryvalidationwhen the server sends it (for automations:validation.errorsas[{ path, code, message }]).install.sh(live since 2026-10-13) checks the global npm directory beforenpm i -g; when it is root-owned (EACCES) it stops with two fixes (sudo for the install step only, or a user-owned npm prefix) and never runs sudo itself.
omm 1.2.0 (2026-10-13)
omm skill install [--project] [--all] [--agent <name>...] [--no-npm]: installs the skill for Claude Code, Codex and OpenCode and saves the@orbitoscope line in the npm config. Works on Windows, macOS and Linux; with noshat hand runnpm i -g @orbito/omm --@orbito:registry=https://git.kozminski.net.pl/api/packages/orbito/npm/and thenomm skill install.install.shis now a thin wrapper: it sets the@orbitonpm scope, runsnpm i -g @orbito/ommand thenomm skill installwith the same options. Thecurl -fsSL https://orbito.pl/docs/skill/install.sh | shline still works on Linux and macOS.- The fix in the outdated-skill notice and in
omm doctoris nowomm skill install(project copies:omm skill install --project) instead ofcurl … | sh.
omm 1.1.0 (2026-10-13)
- Update notices: once a day
ommchecks for a neweromm, a newer@orbito/api-libthan the one inpackage.jsonof the module in the current directory, and a newer skill. Notices go to stderr after the command result (text: lines starting with!;--json: one line{"notices":[…]}), so stdout stays the clean result.OMM_NO_UPDATE_CHECK=1turns the check off. omm doctor [--json]: forces the check and runs the checksnode,omm,npm-scope,registry-login,core-login,company,moduleandskill:<agent>. With--jsonit prints{ checks: [{ name, status: ok|warn|fail, message, fix }], notices }; it exits with 1 only when a check fails.OMM_PACKAGES_REGISTRYoverrides the npm registry of the@orbitopackages (update checks and thenpm-scopecheck).
omm 1.0.1 (2026-10-13)
omm installandomm updatefailing with 404 suggestomm company dev-token(in--jsonashintnext toerrorandstatus). Removed in 2.0.0.- Drafts are installable only in companies holding the author's dev-token. Run
omm company dev-token --jsononce per test company before the firstomm installof a draft; published versions do not need it. Replaced by namespaces and company access in 2.0.0.
omm 1.0.0 (2026-10-13)
- Breaking:
omm devandomm dev unlinkare removed, together withomm.config.js,.omm-dev.jsonand.envloading. Test a module as a draft instead:omm publish,omm install,omm update(see The build loop). - New core commands, the build and test loop without the web panel:
omm login --core [url],omm login --core --token <jwt>,omm whoami --core,omm logout --core,omm company list,omm company use [id],omm company dev-token [uuid](removed in 2.0.0),omm install [--name <name>],omm update [--instance <id>](same version: reloads the instance with the fresh draft image),omm instances,omm logs [--since <iso>] [--day <YYYY-MM-DD>] [--container],omm problems [--status <status>],omm call <method> [--params <json>].
omm init <name>creates the module card in the registry and scaffolds the module from the built-in template (--code,--dir,--description).--jsonon every command: the result as JSON on stdout, errors as{ "error", "status" }on stderr with a non-zero exit code.- Command help in English.
@orbito/api-lib
Update in the module: set the version in package.json dependencies, run npm install, then publish a draft and check it as usual.
@orbito/api-lib 4.3.0 (2026-10-06)
Core.getCompany(): the profile of the company the container serves (name,timezone, address, tax data).timezoneis always filled (IANA name,Europe/Warsawby default). Nothing is cached; fetch it when you need it.Timenamespace:Time.inZone(timeZone)returns date helpers for a time zone (parseDate,formatDate,dateBoundary,addCalendarDays);Time.forCompany()does the same for the company's time zone.- Call origin: entries added with
History.addinside an automation action, or inside a method or hook handler reached from one, are shown in the panel as performed by that automation. No code changes; handlers can readthis.origin/ctx.origin(nulloutside automation runs).
@orbito/api-lib 4.2.0 (2026-10-06)
OAuth.createTicket(): a one-time ticket for an OAuth callback handled by the core. The module gets{ state, redirectUri, expiresAt }and builds the provider's consent URL; after the redirect the core calls the module's finish method in the user's context.
@orbito/api-lib 4.1.0 (2026-09-30)
Docs.register(): markdown documents with the module's domain knowledge (statuses, terms, dependencies) for the company's AI assistant. A new set replaces the previous one.
@orbito/api-lib 4.0.0 (2026-09-29)
- Breaking: keys in trigger
emits, actionrequiresand template variable grouprequiresareKEY(owned by the declaring module) or<moduleCode>:KEY(another module's key, prefix mandatory). A malformed key throws at registration. To migrate: prefix every key of another module (ORDER_IDin a shipping module →'core/orders:ORDER_ID'), sendcallTriggerparams under the same keys as inemits, and read other modules' keys fromctx.event.paramswith the prefix. Templates.registerVarGroup(): groups of variables for message templates, resolved by the core.
