@agentikos/omega-os 0.19.39 → 0.19.41
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bootstrap/lib/common.sh +19 -10
- package/bootstrap/templates/aisb/architect.md +27 -1
- package/bootstrap/templates/aisb/construct.md +27 -1
- package/bootstrap/templates/aisb/keymaker.md +27 -1
- package/bootstrap/templates/aisb/link.md +27 -1
- package/bootstrap/templates/aisb/lmc-protocol.md +27 -1
- package/bootstrap/templates/aisb/merovingian.md +27 -1
- package/bootstrap/templates/aisb/morpheus.md +27 -1
- package/bootstrap/templates/aisb/neo.md +27 -1
- package/bootstrap/templates/aisb/niobe.md +27 -1
- package/bootstrap/templates/aisb/oracle.md +27 -1
- package/bootstrap/templates/aisb/pythia.md +36 -0
- package/bootstrap/templates/aisb/seraph.md +27 -1
- package/bootstrap/templates/aisb/smith.md +27 -1
- package/bootstrap/templates/aisb/zion.md +27 -1
- package/omega/Agentik_Engine/omega_engine/__init__.py +1 -1
- package/omega/Agentik_Engine/omega_engine/__pycache__/__init__.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/cli.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/tmux.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/tui.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/cli.py +35 -6
- package/omega/Agentik_Engine/omega_engine/tmux.py +45 -26
- package/omega/Agentik_Engine/omega_engine/tui.py +25 -20
- package/omega/Agentik_Engine/pyproject.toml +1 -1
- package/omega/Agentik_Engine/tests/__pycache__/test_install_ux.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_install_ux.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_prompt_audit.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_prompt_audit.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_tmux_and_aisb_chat.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_tmux_and_aisb_chat.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_tmux_palette.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_tmux_palette.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_tui_runtime.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_tui_runtime.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/tests/test_install_ux.py +87 -2
- package/omega/Agentik_Engine/tests/test_prompt_audit.py +82 -0
- package/omega/Agentik_Engine/tests/test_tmux_and_aisb_chat.py +94 -0
- package/omega/Agentik_Engine/tests/test_tmux_palette.py +94 -0
- package/omega/Agentik_Engine/tests/test_tui_runtime.py +50 -0
- package/omega/Agentik_SSOT/VERSION +1 -1
- package/omega/Agentik_SSOT/docs/AUDIT-V0.19.40.md +163 -0
- package/package.json +1 -1
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
"""Regression tests for the bundled tmux palette.
|
|
2
|
+
|
|
3
|
+
We swapped the Claude-cream/orange paper theme (#FAFAF7 / #D97757) for
|
|
4
|
+
the tmux-claude pixel/CRT amber palette (xterm colour137 ≈ #af8700).
|
|
5
|
+
These tests pin the new palette so a future drift back to the old
|
|
6
|
+
theme fails loudly.
|
|
7
|
+
|
|
8
|
+
Pinned behaviour:
|
|
9
|
+
|
|
10
|
+
1. The pro config uses ``colour137`` (the amber accent) in multiple
|
|
11
|
+
places — status bar, pane borders, message style.
|
|
12
|
+
2. The old Claude paper palette (#FAFAF7 cream + #D97757 orange) is
|
|
13
|
+
completely gone from the pro config.
|
|
14
|
+
3. The window list is hidden (tmux-claude clean look — the operator
|
|
15
|
+
navigates via Option+/ or `omega tmux menu`, not the window bar).
|
|
16
|
+
4. The popup keybinds use the full-screen ``-w 100% -h 100%`` sizing
|
|
17
|
+
from tmux-claude (the old config used the smaller 80%/90% boxes).
|
|
18
|
+
"""
|
|
19
|
+
from __future__ import annotations
|
|
20
|
+
|
|
21
|
+
import sys
|
|
22
|
+
import unittest
|
|
23
|
+
from pathlib import Path
|
|
24
|
+
|
|
25
|
+
HERE = Path(__file__).resolve().parent
|
|
26
|
+
sys.path.insert(0, str(HERE.parent))
|
|
27
|
+
|
|
28
|
+
from omega_engine.tmux import _PRO_CONFIG # noqa: E402
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
class TestTmuxClaudePalette(unittest.TestCase):
|
|
32
|
+
def test_pro_config_uses_colour137(self):
|
|
33
|
+
"""Amber accent ``colour137`` must show up in at least 4 places.
|
|
34
|
+
|
|
35
|
+
Typically: status-left accent, status-right accent, pane-active
|
|
36
|
+
border, message-style — plus possibly mode-style. We assert >= 4
|
|
37
|
+
so a partial revert still trips the test.
|
|
38
|
+
"""
|
|
39
|
+
n = _PRO_CONFIG.count("colour137")
|
|
40
|
+
self.assertGreaterEqual(
|
|
41
|
+
n, 4,
|
|
42
|
+
f"_PRO_CONFIG must reference colour137 at least 4 times "
|
|
43
|
+
f"(status accents + active border + message/mode style); "
|
|
44
|
+
f"found {n}",
|
|
45
|
+
)
|
|
46
|
+
|
|
47
|
+
def test_no_claude_cream_orange_palette(self):
|
|
48
|
+
"""The old paper theme (#FAFAF7 + #D97757) must be gone."""
|
|
49
|
+
self.assertNotIn(
|
|
50
|
+
"#FAFAF7", _PRO_CONFIG,
|
|
51
|
+
"Old Claude cream bg #FAFAF7 must not appear in _PRO_CONFIG",
|
|
52
|
+
)
|
|
53
|
+
self.assertNotIn(
|
|
54
|
+
"#D97757", _PRO_CONFIG,
|
|
55
|
+
"Old Claude orange accent #D97757 must not appear in _PRO_CONFIG",
|
|
56
|
+
)
|
|
57
|
+
|
|
58
|
+
def test_window_status_hidden(self):
|
|
59
|
+
"""Window list is hidden — both empty format strings present."""
|
|
60
|
+
self.assertIn(
|
|
61
|
+
"window-status-format ''", _PRO_CONFIG,
|
|
62
|
+
"Inactive window list must be hidden (window-status-format '')",
|
|
63
|
+
)
|
|
64
|
+
self.assertIn(
|
|
65
|
+
"window-status-current-format ''", _PRO_CONFIG,
|
|
66
|
+
"Active window must be hidden too (window-status-current-format '')",
|
|
67
|
+
)
|
|
68
|
+
|
|
69
|
+
def test_popup_keybinds_use_full_screen(self):
|
|
70
|
+
"""The M-/ session switcher popup uses full-screen sizing."""
|
|
71
|
+
self.assertIn(
|
|
72
|
+
"-w 100% -h 100%", _PRO_CONFIG,
|
|
73
|
+
"Popup keybinds must use full-screen tmux-claude sizing "
|
|
74
|
+
"(-w 100% -h 100%)",
|
|
75
|
+
)
|
|
76
|
+
# Specifically the M-/ binding (the canonical session switcher).
|
|
77
|
+
# We grep the relevant line to make sure 100%/100% is wired there
|
|
78
|
+
# — not just present elsewhere by coincidence.
|
|
79
|
+
m_slash_lines = [
|
|
80
|
+
ln for ln in _PRO_CONFIG.splitlines() if "M-/" in ln
|
|
81
|
+
]
|
|
82
|
+
self.assertTrue(
|
|
83
|
+
m_slash_lines,
|
|
84
|
+
"_PRO_CONFIG must keep the M-/ popup binding",
|
|
85
|
+
)
|
|
86
|
+
self.assertTrue(
|
|
87
|
+
any("-w 100% -h 100%" in ln for ln in m_slash_lines),
|
|
88
|
+
"M-/ popup binding must use -w 100% -h 100% "
|
|
89
|
+
"(full-screen tmux-claude style)",
|
|
90
|
+
)
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
if __name__ == "__main__":
|
|
94
|
+
unittest.main(verbosity=2)
|
|
@@ -269,6 +269,56 @@ class TestChatFirstRedesign(unittest.TestCase):
|
|
|
269
269
|
self.assertIn("paperclip_bridge", src)
|
|
270
270
|
|
|
271
271
|
|
|
272
|
+
class TestPixelPalette(unittest.TestCase):
|
|
273
|
+
"""Pixel/CRT amber palette — colour137 family. Locks in the
|
|
274
|
+
replacement of the Claude cream/orange palette with a retro-CRT
|
|
275
|
+
amber accent that inherits the terminal background, matching the
|
|
276
|
+
look-and-feel reference from agentik-os/tmux-claude."""
|
|
277
|
+
|
|
278
|
+
def test_amber_constant_defined(self):
|
|
279
|
+
"""`AMBER` must be declared in `_arrow_menu` — it's the new
|
|
280
|
+
primary accent color (xterm 256 colour137 = amber gold)."""
|
|
281
|
+
import inspect
|
|
282
|
+
from omega_engine.tui import _arrow_menu
|
|
283
|
+
src = inspect.getsource(_arrow_menu)
|
|
284
|
+
self.assertIn("AMBER", src,
|
|
285
|
+
"_arrow_menu must declare AMBER (the new colour137 accent)")
|
|
286
|
+
|
|
287
|
+
def test_colour137_in_fzf_args(self):
|
|
288
|
+
"""The fzf `--color=` block must use the xterm `colour137`
|
|
289
|
+
named amber — that's the look-and-feel reference."""
|
|
290
|
+
import inspect
|
|
291
|
+
from omega_engine.tui import _arrow_menu
|
|
292
|
+
src = inspect.getsource(_arrow_menu)
|
|
293
|
+
self.assertIn("colour137", src,
|
|
294
|
+
"fzf --color= block must use colour137 (amber gold) — "
|
|
295
|
+
"the pixel/CRT palette references it explicitly")
|
|
296
|
+
|
|
297
|
+
def test_no_claude_cream_orange_in_fzf(self):
|
|
298
|
+
"""The old Claude cream `#FAFAF7` background must NOT appear in
|
|
299
|
+
`_arrow_menu` anymore — the new palette inherits the terminal
|
|
300
|
+
background (`bg:-1`) for a transparent retro feel."""
|
|
301
|
+
import inspect
|
|
302
|
+
from omega_engine.tui import _arrow_menu
|
|
303
|
+
src = inspect.getsource(_arrow_menu)
|
|
304
|
+
self.assertNotIn("#FAFAF7", src,
|
|
305
|
+
"_arrow_menu must NOT contain Claude cream #FAFAF7 — "
|
|
306
|
+
"the new palette inherits the terminal background")
|
|
307
|
+
|
|
308
|
+
def test_orange_aliased_to_amber(self):
|
|
309
|
+
"""Backward-compat: `ORANGE` must alias `AMBER` so existing
|
|
310
|
+
references (`_section`, `_label`, prompts) keep working with
|
|
311
|
+
only a color change, no logic change."""
|
|
312
|
+
import inspect
|
|
313
|
+
from omega_engine.tui import _arrow_menu
|
|
314
|
+
src = inspect.getsource(_arrow_menu)
|
|
315
|
+
# Tolerate any reasonable spacing around `=`.
|
|
316
|
+
import re
|
|
317
|
+
self.assertRegex(src, r"ORANGE\s*=\s*AMBER",
|
|
318
|
+
"ORANGE must alias AMBER (backward-compat for existing "
|
|
319
|
+
"_section/_label/prompt code)")
|
|
320
|
+
|
|
321
|
+
|
|
272
322
|
class TestOmegaWindowAliveHelper(unittest.TestCase):
|
|
273
323
|
"""tmux.omega_window_alive() — the helper the chat-first TUI uses
|
|
274
324
|
to know whether AISB-chat / Hermès-chat are running."""
|
|
@@ -1 +1 @@
|
|
|
1
|
-
0.19.
|
|
1
|
+
0.19.41
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
# OmegaOS v0.19.40 — pixel/tmux-claude design + progress bar fix + AISB roles enriched
|
|
2
|
+
|
|
3
|
+
> Four parallel chantiers + one main-session chantier. Total: 5 deliverables, 660 tests passing.
|
|
4
|
+
> Reference design: github.com/agentik-os/tmux-claude — adopted verbatim where applicable.
|
|
5
|
+
|
|
6
|
+
## 1. What changed
|
|
7
|
+
|
|
8
|
+
| Chantier | Owner | Effect |
|
|
9
|
+
|---|---|---|
|
|
10
|
+
| **2A — progress bar fix** | agent | `_full_progress` was incrementing `STEP_COUNT` on BOTH `run` AND `ok` phases → counter ran to 2× STEP_TOTAL → bar hit 200% → newline spawned mid-install. Now: only `ok`/`skip` increment. The `\r`-driven single-line overwrite works as designed. |
|
|
11
|
+
| **2B — pixel tmux palette** | agent | Replaced Claude cream/orange (`#FAFAF7` / `#D97757`) with tmux-claude's amber `colour137` palette. Window list HIDDEN (`window-status-format ''`). Status bar with bullets `•`. Popups full-screen (`-w 100% -h 100%`). Paste-deadlock fixes, kill forensics, smart-scroll all preserved. |
|
|
12
|
+
| **2C — pixel fzf palette** | agent | Omega menu's fzf colors swapped to CRT amber: `bg:-1` (inherits terminal), `fg:default`, accents `colour137`/`colour215`. Backward-compat alias `ORANGE = AMBER` keeps existing `_section`/`_label` calls working. |
|
|
13
|
+
| **6 — AISB role enrichment** | main session | 14 AISB role prompts enriched with a uniform "THREE LAWS + Operating Contract" block. Adds LAW 3 (autonomous execution), names LMC protocol path, references `.done.json` + done-marker tooling, requires fresh-context handoff. Per-role tier customization (Manager / Worker / Checker / Watcher). |
|
|
14
|
+
|
|
15
|
+
## 2. Audit numbers — before / after
|
|
16
|
+
|
|
17
|
+
**Prompt audit suite scores (v0.19.39 → v0.19.40):**
|
|
18
|
+
|
|
19
|
+
| Role | Tier | Before | After |
|
|
20
|
+
|---|---|---:|---:|
|
|
21
|
+
| CLAUDE (master) | Lead | 90 | 90 |
|
|
22
|
+
| morpheus | Worker | 75 | **100** |
|
|
23
|
+
| link | Worker | 65 | **100** |
|
|
24
|
+
| neo | Worker | 65 | **100** |
|
|
25
|
+
| zion | Worker | 65 | **100** |
|
|
26
|
+
| seraph | Checker | 55 | **100** |
|
|
27
|
+
| oracle | Manager | 45 | **100** |
|
|
28
|
+
| architect | Worker | 45 | **100** |
|
|
29
|
+
| construct | Worker | 45 | **100** |
|
|
30
|
+
| keymaker | Worker | 45 | **100** |
|
|
31
|
+
| merovingian | Worker | 45 | **100** |
|
|
32
|
+
| niobe | Worker | 45 | **100** |
|
|
33
|
+
| smith | Worker | 45 | **100** |
|
|
34
|
+
| pythia | Watcher | 5 | **100** |
|
|
35
|
+
| lmc-protocol (doc) | Reference | 45 | **85** |
|
|
36
|
+
| **Average** | | **52.0** | **98.3** |
|
|
37
|
+
| **shared `.done.json` vocab overlap** | | 33% | **100%** |
|
|
38
|
+
|
|
39
|
+
## 3. The Operating Contract every role now embeds
|
|
40
|
+
|
|
41
|
+
```markdown
|
|
42
|
+
## Operating Contract
|
|
43
|
+
|
|
44
|
+
You are a **<TIER>** in the **LMC (Lead-Manager-Checker) protocol** — see
|
|
45
|
+
`Agentik_SSOT/agents/aisb/lmc-protocol.md` for the full spec.
|
|
46
|
+
|
|
47
|
+
**Tier responsibility**: <one-line per-role>
|
|
48
|
+
|
|
49
|
+
**Verified completion** — you NEVER declare your own work done. The engine
|
|
50
|
+
derives completion from a `.done.json` signal you emit via:
|
|
51
|
+
|
|
52
|
+
~/.aisb/lib/<MARKER> # writes .done.json with status + evidence
|
|
53
|
+
|
|
54
|
+
Status ∈ {done_clean, pending, failed}. If genuinely blocked (Third-Law
|
|
55
|
+
fallback), write worker-blocked-<session>.json + execute the fallback —
|
|
56
|
+
never sit idle.
|
|
57
|
+
|
|
58
|
+
**Fresh-context handoff** — every brief MUST be self-contained:
|
|
59
|
+
Mission / Purpose / Context / Done Criteria / Verify Command.
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
Per-role tiers:
|
|
63
|
+
- **Manager** (Oracle) — `oracle-mark-done.sh`
|
|
64
|
+
- **Workers** (Morpheus, Construct, Architect, Keymaker, Niobe, Smith, Merovingian, Neo, Link, Zion) — `worker-mark-done.sh`
|
|
65
|
+
- **Checker** (Seraph) — `worker-mark-done.sh`
|
|
66
|
+
- **Watcher** (Pythia, read-only) — `worker-mark-done.sh`, status=`pending` for human review
|
|
67
|
+
|
|
68
|
+
## 4. The new tmux look (tmux-claude alignment)
|
|
69
|
+
|
|
70
|
+
**Before** (Claude cream/orange):
|
|
71
|
+
```
|
|
72
|
+
status-style "bg=#FAFAF7,fg=#3D3929"
|
|
73
|
+
status-left "#[fg=#D97757,bold]Ω #S #[fg=#A8A29E]│ "
|
|
74
|
+
status-right "#[fg=#88837A]%H:%M │ <count> sessions"
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
**After** (tmux-claude amber):
|
|
78
|
+
```
|
|
79
|
+
status-style "fg=default" # inherits terminal background
|
|
80
|
+
status-left ' #[fg=colour137,bold]Ω #S #[fg=default,nobold]• #[fg=colour137]#(omega tmux count) sess #[fg=default]• #[fg=colour137]%H:%M '
|
|
81
|
+
status-right '#[fg=default]CPU #[fg=colour137]<cpu>% #[fg=default]• #[fg=colour137]Ω v<version> '
|
|
82
|
+
|
|
83
|
+
setw -g window-status-format '' # hide window list
|
|
84
|
+
setw -g window-status-current-format ''
|
|
85
|
+
setw -g window-status-separator ''
|
|
86
|
+
|
|
87
|
+
bind-key Z display-popup -E -w 100% -h 100% "omega tmux menu" # was 80%
|
|
88
|
+
bind-key -n M-/ display-popup -E -w 100% -h 100% "omega tmux switcher"
|
|
89
|
+
|
|
90
|
+
set -g pane-active-border-style "fg=colour137"
|
|
91
|
+
set -g message-style "fg=colour137,bg=default,bold"
|
|
92
|
+
set -g mode-style "fg=default,bg=colour137"
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
`bind-key -n M-z` keeps spawning the Omega session (unchanged).
|
|
96
|
+
|
|
97
|
+
## 5. The fzf menu palette (Omega TUI)
|
|
98
|
+
|
|
99
|
+
**ANSI constants in `_arrow_menu`** (with backward-compat alias):
|
|
100
|
+
```python
|
|
101
|
+
AMBER = "\033[38;5;137m" # xterm 256 colour137 — amber gold
|
|
102
|
+
AMBER_BR = "\033[38;5;215m" # bright amber for highlighted rows
|
|
103
|
+
MUTED = "\033[38;5;240m" # dim gray
|
|
104
|
+
ORANGE = AMBER # alias — keeps existing code working
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
**fzf `--color=` block:**
|
|
108
|
+
```
|
|
109
|
+
bg:-1, fg:default, # inherit terminal background (no cream)
|
|
110
|
+
bg+:#1c1c1c, fg+:colour215, # dark highlight bar, bright amber on selection
|
|
111
|
+
hl/hl+/prompt/pointer/marker/header/border/info/spinner: colour137/215,
|
|
112
|
+
gutter:-1
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
## 6. Tests (regression-locked)
|
|
116
|
+
|
|
117
|
+
| Chantier | New tests | Suite total |
|
|
118
|
+
|---|---|---|
|
|
119
|
+
| v0.19.39 baseline | — | 644 |
|
|
120
|
+
| 2A progress bar (3 new) | +3 | 647 |
|
|
121
|
+
| 2C fzf palette (4 new) | +4 | 651 |
|
|
122
|
+
| 2B tmux palette (4 new) | +4 | 655 |
|
|
123
|
+
| 6 role enrichment (5 new) | +5 | **660** |
|
|
124
|
+
|
|
125
|
+
**Regression locks for role enrichment:**
|
|
126
|
+
- `test_every_aisb_role_scores_at_least_80` — floor: 80/100 per role
|
|
127
|
+
- `test_average_suite_score_at_least_85` — floor: 85.0 average (current 98.3)
|
|
128
|
+
- `test_done_json_vocab_overlap_at_least_80_percent` — floor: 80% (current 100%)
|
|
129
|
+
- `test_every_role_references_lmc_protocol` — direct grep check
|
|
130
|
+
- `test_every_role_references_three_laws` — LAW 3 mandatory
|
|
131
|
+
|
|
132
|
+
## 7. Progress bar — before / after (the actual UX)
|
|
133
|
+
|
|
134
|
+
**Before** (`STEP_TOTAL=21` but `STEP_COUNT` reaches 42):
|
|
135
|
+
```
|
|
136
|
+
Installing… ███████████████████ 21/21 100% step_aisb_suite
|
|
137
|
+
Installing… ███████████████████ 22/21 104% step_audit_skills ← newline mid-install
|
|
138
|
+
Installing… ███████████████████ 23/21 109% step_engine
|
|
139
|
+
…
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
**After** (count only on `ok`/`skip`):
|
|
143
|
+
```
|
|
144
|
+
Installing… ██████████████████░░ 18/21 85% step_clis ← single line, no scroll noise
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
(then on the very last `ok` of the run, ONE newline so the post-install card prints cleanly)
|
|
148
|
+
|
|
149
|
+
## 8. Verdict
|
|
150
|
+
|
|
151
|
+
✅ TUI menu (fzf) — **pixel/CRT amber palette**, terminal bg inherited.
|
|
152
|
+
✅ Tmux config — **tmux-claude design adopted** (colour137 amber, bullets, hidden window list, full-screen popups).
|
|
153
|
+
✅ Install progress bar — **stays on one line**, no newline spawn.
|
|
154
|
+
✅ AISB role prompts — **average 98.3/100** (was 52.0), every role references the LMC protocol + `.done.json` + Three Laws + done-marker + fresh-context.
|
|
155
|
+
✅ `omega doctor prompts` section — surfaces healthy scores, drift detection live.
|
|
156
|
+
✅ 660 tests passing, 0 regressions.
|
|
157
|
+
|
|
158
|
+
Next steps (deferred to v0.19.41+, in order):
|
|
159
|
+
- **Convex install step** — bundle Convex CLI, scaffold a starter project with Claude Code SDK + Google SDK + A2A schema
|
|
160
|
+
- **Tmux popup-based menu** — replace inline fzf with `display-popup -E -w 100% -h 100%` like tmux-claude's `session-manager-v2`
|
|
161
|
+
- **Status-bar cache daemon** — match tmux-claude's `/tmp/tmux-status-cache/` pattern to avoid subprocess spawning during paste
|
|
162
|
+
|
|
163
|
+
The user's invariant remains: `npx -y @agentikos/omega-os@latest --full` and the system is 100% functional.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agentikos/omega-os",
|
|
3
|
-
"version": "0.19.
|
|
3
|
+
"version": "0.19.41",
|
|
4
4
|
"description": "Omega OS — installable agentic operating system with verified-completion orchestration. Event-sourced engine, 8-block rack, autonomous agents, MCP.",
|
|
5
5
|
"bin": {
|
|
6
6
|
"omega-os": "bin/omega-os.js"
|