Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
3274320
fix(providers): update agent CLI contracts
cursoragent Aug 24, 2026
5b56979
test(providers): match shell-quoted Hermes launch
cursoragent Aug 24, 2026
9c95520
fix(install): restore default runtime parity
cursoragent Aug 24, 2026
c1b9e5c
fix(upgrade): validate and refresh agent runtimes
cursoragent Aug 24, 2026
db06c4a
fix(runtime): preserve provider selection and resume
cursoragent Aug 24, 2026
5ad657d
feat(gateway): support streaming Codex chat
cursoragent Aug 24, 2026
485276a
fix(ci): gate the full shipped workspace
cursoragent Aug 24, 2026
5ce79d7
fix(release): verify gateway archive payload
cursoragent Aug 24, 2026
fe01d2c
style: format the complete Rust workspace
cursoragent Aug 24, 2026
ae6e44e
test(config): cover modern provider state
cursoragent Aug 24, 2026
21c123f
docs: publish current provider compatibility
cursoragent Aug 24, 2026
c8aa6e3
test(gateway): follow workspace package version
cursoragent Aug 24, 2026
1bb37ab
test(gateway): mirror the canonical agent roster
cursoragent Aug 24, 2026
35b4b78
fix(gateway): preserve provider config revisions
cursoragent Aug 24, 2026
cb9ab6a
fix(providers): harden auth hooks and migrations
cursoragent Aug 24, 2026
a1ed3a2
fix(install): prune stale runtime assets safely
cursoragent Aug 24, 2026
91becf6
fix(audits): keep installed paths provider-neutral
cursoragent Aug 24, 2026
06c5c55
chore(installer): release omega-os 1.5.13
cursoragent Aug 24, 2026
d34a43c
test(gateway): make project discovery hermetic
cursoragent Aug 24, 2026
a03ccbd
chore(release): prepare OmegaOS v0.1.14
cursoragent Aug 24, 2026
72cdd1a
test(process): synchronize escaped descendant startup
cursoragent Aug 24, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 6 additions & 9 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ env:

jobs:
build-test:
name: build + test (non-gateway)
name: build + test
runs-on: ubuntu-24.04
timeout-minutes: 60
steps:
Expand All @@ -35,29 +35,26 @@ jobs:
- name: Cache cargo registry + target
uses: Swatinem/rust-cache@6323deb102c322ba6fcbdcafc7e3dddab59af2b6 # v2

# The gateway is an intentionally excluded, separately preserved WIP
# surface. These exact packages are the release unit and the truthful
# blocking quality boundary for this mission.
- name: Format check
run: cargo fmt -p omega-core -p omega-tui -p omega -- --check
run: cargo fmt --all -- --check

- name: Clippy
run: cargo clippy --locked -p omega-core -p omega-tui -p omega --all-targets -- -D warnings
run: cargo clippy --locked --workspace --all-targets -- -D warnings

- name: Build (warnings are errors)
run: cargo build --release --locked -p omega-core -p omega-tui -p omega
run: cargo build --release --locked --workspace
env:
RUSTFLAGS: "-D warnings"

- name: Test
run: cargo test --locked -p omega-core -p omega-tui -p omega
run: cargo test --locked --workspace

- name: Shell syntax
shell: bash
run: |
while IFS= read -r -d '' script; do
bash -n "$script"
done < <(find . -type f -name '*.sh' -not -path './target/*' -not -path './crates/omega-gateway/*' -print0)
done < <(find . -type f -name '*.sh' -not -path './target/*' -print0)

- name: Workflow graph contracts
run: bash scripts/check-workflows.sh
Expand Down
15 changes: 9 additions & 6 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -77,8 +77,8 @@ jobs:
toolchain: 1.97.1
targets: ${{ matrix.target }}

- name: Build omega from the pinned lockfile
run: cargo build --release --locked --bin omega --target ${{ matrix.target }}
- name: Build OmegaOS binaries from the pinned lockfile
run: cargo build --release --locked --bin omega --bin omega-gatewayd --target ${{ matrix.target }}

- name: Resolve the exact locked rmux revision
id: rmux
Expand Down Expand Up @@ -115,11 +115,12 @@ jobs:
test "$(git -C "${{ steps.rmux.outputs.path }}" rev-parse HEAD)" = "${{ steps.rmux.outputs.rev }}"
cargo build --release --locked --manifest-path "${{ steps.rmux.outputs.path }}/Cargo.toml" --target "${{ matrix.target }}"

- name: Package deterministic omega + rmux archive
- name: Package deterministic OmegaOS + rmux archive
shell: bash
run: |
mkdir -p dist
cp "target/${{ matrix.target }}/release/omega" dist/omega
cp "target/${{ matrix.target }}/release/omega-gatewayd" dist/omega-gatewayd
cp "${{ steps.rmux.outputs.path }}/target/${{ matrix.target }}/release/rmux" dist/rmux
python3 - "$GITHUB_SHA" "${{ steps.rmux.outputs.rev }}" "${{ matrix.target }}" <<'PY'
import hashlib
Expand Down Expand Up @@ -151,13 +152,13 @@ jobs:
with output.open('wb') as raw:
with gzip.GzipFile(filename='', mode='wb', fileobj=raw, mtime=0) as zipped:
with tarfile.open(fileobj=zipped, mode='w', format=tarfile.USTAR_FORMAT) as archive:
for name in ('omega', 'rmux', 'BUILD-INFO.json'):
for name in ('omega', 'omega-gatewayd', 'rmux', 'BUILD-INFO.json'):
path = root / name
info = archive.gettarinfo(str(path), arcname=name)
info.uid = info.gid = 0
info.uname = info.gname = ''
info.mtime = 0
info.mode = 0o755 if name in {'omega', 'rmux'} else 0o644
info.mode = 0o755 if name in {'omega', 'omega-gatewayd', 'rmux'} else 0o644
with path.open('rb') as source:
archive.addfile(info, source)
PY
Expand Down Expand Up @@ -288,7 +289,9 @@ jobs:
raise SystemExit(f'checksum mismatch for {name}')
archive = root / f'omega-{target}.tar.gz'
with tarfile.open(archive, mode='r:gz') as bundle:
if set(bundle.getnames()) != {'omega', 'rmux', 'BUILD-INFO.json'}:
if set(bundle.getnames()) != {
'omega', 'omega-gatewayd', 'rmux', 'BUILD-INFO.json'
}:
raise SystemExit(f'unexpected archive members for {target}: {bundle.getnames()}')
build_info = json.load(bundle.extractfile('BUILD-INFO.json'))
if build_info.get('schema_version') != 1:
Expand Down
14 changes: 14 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,20 @@ for [semantic versioning](https://semver.org) once it reaches 1.0. Until then,

## [Unreleased]

## [0.1.14] — 2026-08-24

### Provider compatibility and installation

- Updated Codex, Claude, Hermes, Kimi, Gemini, Antigravity, GLM, Pi, and
OpenRouter launch contracts and current model catalogs.
- Added streamed Codex gateway chat, provider-aware resume/resurrection,
version diagnostics, safe Codex 0.149 migration, and configurable hook trust.
- Restored fresh-install parity: Codex is provisioned as the default, gateway
binaries ship in release archives, Rust is pinned, and managed assets prune
stale files without discarding operator configuration.
- Expanded CI to the complete workspace and made gateway/project/skill tests
hermetic. Published the matching npm bootstrap as `omega-os@1.5.13`.

### Documentation and release operations

- Aligned current operator docs with the runtime registries: 7 Laws, 52
Expand Down
8 changes: 4 additions & 4 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ members = [
resolver = "2"

[workspace.package]
version = "0.1.13"
version = "0.1.14"
edition = "2021"
license = "MIT OR Apache-2.0"
repository = "https://github.com/agentik-os/OmegaOS"
Expand Down
4 changes: 2 additions & 2 deletions GUIDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

## 1. What OmegaOS is

OmegaOS is a provider-neutral control plane for a fleet of coding agents on one box. New sessions use OpenAI Codex by default, while Claude Code, Gemini, Pi, Hermes, and GLM remain selectable. It
OmegaOS is a provider-neutral control plane for a fleet of coding agents on one box. New sessions use OpenAI Codex by default, while Claude Code, Google Antigravity, enterprise/API-key Gemini CLI, OpenRouter/Pi, Hermes, GLM, and Kimi remain selectable. It
turns a Linux machine (typically a VPS) into a place where you dispatch work in
one sentence and a hierarchy of agents: the Atlas service routes, an oracle per
project that plans, ephemeral workers that edit — executes it in parallel under
Expand Down Expand Up @@ -88,7 +88,7 @@ Seven tabs (cycle with arrow keys; `Tab` toggles focus between panels):
| **Sessions** | Live session list with roles and progress; the right panel mirrors the selected pane and accepts chat input. Codex/OpenAI panes preserve ANSI color, reflow long Unicode input to the visible width, paint the real cursor row, and show the persisted provider identity. Kill, lock, rename, attach. |
| **Projects** | Registered projects, planner creation, Telegram topic controls, open/dispatch, and guarded deletion. |
| **OS** | The 24-product operative-system registry with static readiness evidence and MASTER prompt launch. |
| **Menu** | Launch actions: new Claude/Codex/Gemini/Pi/Hermes/GLM/terminal session, **[N] New Project**, dispatch to an oracle, refresh, protection toggle, kill / kill-all / nuclear cleanup, restart, quit. |
| **Menu** | Launch actions: new Claude/Codex/Gemini/Antigravity/Pi/Hermes/GLM/Kimi/terminal session, **[N] New Project**, dispatch to an oracle, refresh, protection toggle, kill / kill-all / nuclear cleanup, restart, quit. |
| **System** | Laws, rules, agent roles, skills, and documentation. |
| **Help** | Keybindings and usage hints. |
| **Settings** | Theme gallery (live preview — see [docs/THEMES.md](docs/THEMES.md)), provider/model config, API keys, agent installs, the Monitor group (billing, accounts, bot status, provisioning keys wizard). |
Expand Down
8 changes: 4 additions & 4 deletions README.es-ES.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ Un plano de control en el terminal para ejecutar en paralelo una flota de agente

[![CI](https://github.com/agentik-os/OmegaOS/actions/workflows/ci.yml/badge.svg)](https://github.com/agentik-os/OmegaOS/actions/workflows/ci.yml) ![License: MIT OR Apache-2.0](https://img.shields.io/badge/license-MIT%20OR%20Apache--2.0-blue.svg) ![Built with Rust](https://img.shields.io/badge/built%20with-Rust-orange.svg)

OmegaOS no es una biblioteca que importas. Lo instalas en una máquina Linux y obtienes el comando `omega`, una TUI para vigilar y matar sesiones, una capa de orquestación que reparte el trabajo a los agentes y un puente de Telegram para el control desde el móvil. Las sesiones nuevas usan OpenAI Codex por defecto. Claude Code, Gemini, Pi, Hermes y GLM siguen siendo opciones explícitas. Cada agente recibe un contexto de políticas compacto, tipado y acotado al rol, compilado a partir de la misma doctrina.
OmegaOS no es una biblioteca que importas. Lo instalas en una máquina Linux y obtienes el comando `omega`, una TUI para vigilar y matar sesiones, una capa de orquestación que reparte el trabajo a los agentes y un puente de Telegram para el control desde el móvil. Las sesiones nuevas usan OpenAI Codex por defecto. Claude Code, Google Antigravity, Gemini CLI para Enterprise/API, OpenRouter/Pi, Hermes, GLM y Kimi siguen siendo opciones explícitas. Cada agente recibe un contexto de políticas compacto, tipado y acotado al rol, compilado a partir de la misma doctrina.

Versión actual: mira [CHANGELOG.md](CHANGELOG.md) (`omega -V` en una máquina ya instalada). Lo uso a diario; da por hecho que te encontrarás asperezas.

Expand All @@ -28,7 +28,7 @@ cd OmegaOS
./install.sh
```

El instalador descarga binarios `rmux` + `omega` precompilados para tu plataforma cuando hay una versión publicada (verificados por checksum), y si no, compila desde el código fuente — así un clon nuevo siempre reproduce el sistema, solo que más rápido cuando existe un binario. Fuerza la compilación desde el código fuente con `OMEGA_FROM_SOURCE=1 ./install.sh`.
El instalador descarga binarios `rmux` + `omega` + `omega-gatewayd` precompilados para tu plataforma cuando hay una versión publicada (verificados por checksum), y si no, compila desde el código fuente — así un clon nuevo siempre reproduce el sistema, solo que más rápido cuando existe un binario. Fuerza la compilación desde el código fuente con `OMEGA_FROM_SOURCE=1 ./install.sh`.

## Actualización

Expand Down Expand Up @@ -63,7 +63,7 @@ El stack se instala solo; lo único que queda es la parte personal. **`omega gui
imprime el paso a paso completo** (también guardado en `~/.omega/GETTING-STARTED.md`,
y mostrado al final de la instalación). En resumen:

1. **Conecta Codex** *(obligatorio para el runtime por defecto)*: ejecuta `codex login` y luego comprueba con `codex login status`. Claude sigue siendo opcional a través de `claude` y `/login`.
1. **Conecta Codex** *(obligatorio para el runtime por defecto)*: ejecuta `omega codex-login` y luego comprueba con `omega codex-login-status`. Claude sigue siendo opcional mediante `claude auth login`.
2. **Control remoto por Telegram** *(recomendado)* — el token de [@BotFather](https://t.me/BotFather), tu id de [@userinfobot](https://t.me/userinfobot) y, después, `OMEGA_TG_TOKEN=<TOKEN> omega telegram setup <ID> --user-id <ID>` (la forma con variable de entorno mantiene el token fuera de la lista de procesos). Para un tema por proyecto: grupo + temas (Topics) activados + bot administrador → `/setupgroup` → `/sync`.
3. **Claves de servicio** *(opcional)* — `~/.omega/provisioning/services.env` (Vercel / GitHub / Convex / Stripe / OpenAI para voz) alimenta el aprovisionamiento automático de aplicaciones nuevas.
4. **Añade un proyecto** — `omega` → **[N] New Project**, Telegram → *Import from GitHub*, o basta con dejar un repo en `~/Station/<Category>/`.
Expand Down Expand Up @@ -246,7 +246,7 @@ Prefiero que lo sepas antes de entrar.

- **Pensado para Linux.** Desarrollado en un VPS sin entorno gráfico. Sin Windows. macOS recibe correcciones de verdad (servicios launchd, ruta de Homebrew), pero está menos rodado.
- La TUI da por hecho un terminal de 256 colores. En uno de 16 colores se verá feo.
- El runtime de agente por defecto es OpenAI Codex, así que la CLI `codex` tiene que tener la sesión iniciada. Claude Code, Gemini, Pi, Hermes y GLM son alternativas explícitas admitidas.
- El runtime de agente por defecto es OpenAI Codex, así que la CLI `codex` tiene que tener la sesión iniciada. Claude Code, Antigravity, Gemini CLI para Enterprise/API, OpenRouter/Pi, Hermes, GLM y Kimi son alternativas admitidas.
- **Una sola máquina.** El daemon rmux es local. No hay orquestación multi-host.
- Es 0.1.x. Lo uso a diario, pero encontrarás asperezas con las que yo todavía no me he topado.

Expand Down
8 changes: 4 additions & 4 deletions README.fr.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ Un plan de contrôle en terminal pour piloter en parallèle une flotte d'agents

[![CI](https://github.com/agentik-os/OmegaOS/actions/workflows/ci.yml/badge.svg)](https://github.com/agentik-os/OmegaOS/actions/workflows/ci.yml) ![License: MIT OR Apache-2.0](https://img.shields.io/badge/license-MIT%20OR%20Apache--2.0-blue.svg) ![Built with Rust](https://img.shields.io/badge/built%20with-Rust-orange.svg)

OmegaOS n'est pas une bibliothèque qu'on importe. On l'installe sur une machine Linux et on récupère la commande `omega`, une TUI pour surveiller et tuer les sessions, une couche d'orchestration qui distribue le travail aux agents, et un pont Telegram pour piloter le tout depuis son téléphone. Les nouvelles sessions utilisent OpenAI Codex par défaut. Claude Code, Gemini, Pi, Hermes et GLM restent disponibles comme choix explicites. Chaque agent reçoit un contexte de règles compact, typé et cadré à son rôle, compilé depuis la même doctrine.
OmegaOS n'est pas une bibliothèque qu'on importe. On l'installe sur une machine Linux et on récupère la commande `omega`, une TUI pour surveiller et tuer les sessions, une couche d'orchestration qui distribue le travail aux agents, et un pont Telegram pour piloter le tout depuis son téléphone. Les nouvelles sessions utilisent OpenAI Codex par défaut. Claude Code, Google Antigravity, Gemini CLI pour comptes Enterprise/API, OpenRouter/Pi, Hermes, GLM et Kimi restent disponibles comme choix explicites. Chaque agent reçoit un contexte de règles compact, typé et cadré à son rôle, compilé depuis la même doctrine.

Version courante : voir [CHANGELOG.md](CHANGELOG.md) (`omega -V` sur une machine installée). Je m'en sers tous les jours ; il faut s'attendre à quelques aspérités.

Expand All @@ -28,7 +28,7 @@ cd OmegaOS
./install.sh
```

L'installateur télécharge des binaires `rmux` + `omega` précompilés pour la plateforme courante lorsqu'une release est publiée (vérifiés par somme de contrôle), et retombe sinon sur une compilation depuis les sources — un clone frais reproduit donc toujours le système, simplement plus vite quand un binaire existe. Pour forcer la compilation depuis les sources : `OMEGA_FROM_SOURCE=1 ./install.sh`.
L'installateur télécharge des binaires `rmux` + `omega` + `omega-gatewayd` précompilés pour la plateforme courante lorsqu'une release est publiée (vérifiés par somme de contrôle), et retombe sinon sur une compilation depuis les sources — un clone frais reproduit donc toujours le système, simplement plus vite quand un binaire existe. Pour forcer la compilation depuis les sources : `OMEGA_FROM_SOURCE=1 ./install.sh`.

## Mise à jour

Expand Down Expand Up @@ -65,7 +65,7 @@ La stack s'installe toute seule ; il ne reste que les pièces personnelles.
`~/.omega/GETTING-STARTED.md`, et affiché à la fin de l'installation). En
résumé :

1. **Connecter Codex** *(indispensable pour le runtime par défaut)* : lancer `codex login`, puis vérifier avec `codex login status`. Claude reste optionnel, via `claude` et `/login`.
1. **Connecter Codex** *(indispensable pour le runtime par défaut)* : lancer `omega codex-login`, puis vérifier avec `omega codex-login-status`. Claude reste optionnel via `claude auth login`.
2. **Pilotage Telegram à distance** *(recommandé)* — le token vient de [@BotFather](https://t.me/BotFather), l'identifiant de [@userinfobot](https://t.me/userinfobot), puis `OMEGA_TG_TOKEN=<TOKEN> omega telegram setup <ID> --user-id <ID>` (la forme avec variable d'environnement garde le token hors de la liste des processus). Pour un topic par projet : groupe + Topics activés + bot administrateur → `/setupgroup` → `/sync`.
3. **Clés de services** *(facultatif)* — `~/.omega/provisioning/services.env` (Vercel / GitHub / Convex / Stripe / OpenAI pour la voix) alimente le provisionnement automatique des nouvelles applications.
4. **Ajouter un projet** — `omega` → **[N] New Project**, Telegram → *Import from GitHub*, ou simplement déposer un dépôt sous `~/Station/<Category>/`.
Expand Down Expand Up @@ -248,7 +248,7 @@ Autant les connaître avant de se lancer.

- **Linux d'abord.** Développé sur un VPS sans interface graphique. Pas de Windows. macOS reçoit de vrais correctifs (services launchd, chemin Homebrew) mais est moins éprouvé.
- La TUI suppose un terminal 256 couleurs. Sur un terminal 16 couleurs, ce sera moche.
- Le runtime d'agent par défaut est OpenAI Codex. La CLI `codex` doit donc être connectée. Claude Code, Gemini, Pi, Hermes et GLM sont des alternatives explicites prises en charge.
- Le runtime d'agent par défaut est OpenAI Codex. La CLI `codex` doit donc être connectée. Claude Code, Antigravity, Gemini CLI pour Enterprise/API, OpenRouter/Pi, Hermes, GLM et Kimi sont des alternatives prises en charge.
- **Une seule machine.** Le daemon rmux est local. Il n'y a pas d'orchestration multi-hôtes.
- C'est du 0.1.x. Je m'en sers tous les jours, mais on tombera sur des aspérités que je n'ai pas encore rencontrées.

Expand Down
Loading
Loading