From cbb16a77a46af171bdfff8eb38e86ab2a11a6040 Mon Sep 17 00:00:00 2001 From: RECTOR Date: Tue, 20 Oct 2026 05:36:29 +0700 Subject: [PATCH] feat: omp 18.12.3 compatibility (docs/version update) --- README.md | 2 +- assets/hero.svg | 2 +- docs/COMPATIBILITY.md | 12 ++++++++++++ package.json | 2 +- 4 files changed, 15 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 6d7abee..024aff1 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ Render order (top → bottom): **info · prayers · money · zai (one row per wi | **prayers** | All five prayers with wall times, from [aladhan](https://api.aladhan.com) (cached per local day, stale-marker on degradation). Past prayers get a dim `✓`; the next prayer is green with a countdown on its segment only — `Fajr 04:15 (7h 03m)`. | | **money** | API spend + token volume per window: `REPO $68.36 (1.3B)` (all-time for the current project) · `DAY` (since 00:00 local) · `7DAY` / `30DAY` (rolling, hour-aligned). Token volumes are dim, from the same sessions scan. | | **zai** | One row per quota window — `󰚯 zai 5hrs …` / `󰚯 zai 7DAY …` — each `LABEL usage%/elapsed% (pace · reset · absolute)`, e.g. `5hrs 16%/26% (30m under · 3h 42m · Mon Oct 12 00:54)` / `7DAY 33%/32% (1h 41m over · 4d 19h · Fri Oct 16 16:12)`. **Provider-gated**: renders only while the active model's provider is `zai` (or the provider is unreadable); vanishes entirely on other providers. | -| **versions** | `󰚦 omp 18.12.1 · sl 0.8.5 · tern 0.7.2` — host from one `--version` spawn of the **running omp binary** (`process.execPath`, so it is install-agnostic (brew/npm/curl/source) and correct even for sessions resumed across an upgrade); plugin from its own package.json; tern from the `TERM_PROGRAM`/`TERM_PROGRAM_VERSION` env the [Tern terminal](https://stencil.so) sets — **Tern-gated**: strict env match, segment omitted outside Tern or when the version is unknown. Omitted entirely when no version is known — never a placeholder. | +| **versions** | `󰚦 omp 18.12.3 · sl 0.8.6 · tern 0.7.2` — host from one `--version` spawn of the **running omp binary** (`process.execPath`, so it is install-agnostic (brew/npm/curl/source) and correct even for sessions resumed across an upgrade); plugin from its own package.json; tern from the `TERM_PROGRAM`/`TERM_PROGRAM_VERSION` env the [Tern terminal](https://stencil.so) sets — **Tern-gated**: strict env match, segment omitted outside Tern or when the version is unknown. Omitted entirely when no version is known — never a placeholder. | **Pace** — `window × (usage% − elapsed%)/100` — renders `1h 36m over` (orange: burning faster than the clock, quota exhausts early by that much) or `30m under` (green: behind the clock). Percent heat: accent < 70%, warning ≥ 70%, error ≥ 90% — raw, so over-quota stays error-red while display caps at `100%+`. diff --git a/assets/hero.svg b/assets/hero.svg index 765643d..e9a8017 100644 --- a/assets/hero.svg +++ b/assets/hero.svg @@ -40,7 +40,7 @@ zai 7DAY 33%/31% (3h 22m over · 4d 19h · Fri Oct 16 03:45) - omp 18.12.1 · sl 0.8.5 · tern 0.7.2 + omp 18.12.3 · sl 0.8.6 · tern 0.7.2 omp native statusline closes the block — placement tracked upstream (oh-my-pi #11100) diff --git a/docs/COMPATIBILITY.md b/docs/COMPATIBILITY.md index 2d0280e..c63cb16 100644 --- a/docs/COMPATIBILITY.md +++ b/docs/COMPATIBILITY.md @@ -52,3 +52,15 @@ Per-run authoritative record, created on first use per `.omp/commands/compat-upd - **Render sim (formatter-level)**: ✓ 20/20 checks — all line families exact-equality-asserted against suite-approved strings (info, prayer, zai full-row + heat bands + capped `100%+` + both-windows + empty, versions ×5 contract shapes incl. target probe `versionLine({omp:"18.12.1", sl:"0.8.5"})`, money, paceText, heat edges, formatResetAbs/formatGregorian/formatWeekday vectors) — throwaway `/tmp` script mirroring the `test/lines.test.ts` stub-theme pattern. - **Verdict**: **COMPATIBLE** → docs-only **patch** release 0.8.5. Version depictions synced in one pass: README feature-table row + `assets/hero.svg` versions tspan → `omp 18.12.1 · sl 0.8.5 · tern 0.7.2` (README `/sl` sample and `assets/dataflow.svg` carry no numeric version depiction). No layout change; `src/versions.ts` comment unchanged (`--version`-spawn mechanism untouched in 18.11.x/18.12.x). - **Ship**: branch `chore/omp-18.12.1-compat` → PR to main → tag `v0.8.5` → CI publish → npm propagation probes → `omp plugin install --force` → live tmux render check (isolated socket). + +## omp 18.12.3 (2026-10-20) + +- **Target**: omp v18.12.3 (published 2026-10-19); running binary is the Tern-managed 18.12.3 (`~/Library/Application Support/Tern/omp/versions/18.12.3`, selected by the Tern shim at `~/Library/Application Support/Tern/omp/bin/omp`). Baseline: 18.12.1 (v0.8.5). +- **Research span**: v18.12.2 + v18.12.3. Primary source: GitHub release bodies via `gh api` (complete for both). Secondary: changelog embedded in the running 18.12.3 binary — both `## [ver]` headings present with 48/50 content lines; every window line appears verbatim in the GitHub bodies (0 contradictions; partial-subset coverage, not a full mirror). Note: `command -v omp` in a login shell resolves the **stale Homebrew Cellar 18.8.6** first; the Tern shim earlier in the interactive PATH is what serves 18.12.3 — resolve the binary via the Tern versions dir, not `Cellar`, when researching the running host. +- **Findings**: 18.12.2 — additive `tui.completeScrollback` / `ComposerPreferences.completeScrollback` (default `false`; HUD/dialog rows displaced off screen), status-bar spinner/timer repaint fix (#16109), `el.selectText`/`el.type`/`el.press` + `computer.backgroundFallback` computer-use additions, DeepSeek web-search engine, idle compaction timed to the 1h prompt-cache TTL, iTerm2 cell-size inline-image fix, table-chart label parsing. 18.12.3 — additive **Ask and remember** approval mode (`always-ask-cached`, `approval-cache.db`, `/forget-approvals`), extension `ui.approve()` hosts may render `prompt.grants` and answer `{ grant, always }` (old `once`/`session`/`deny` unchanged for hosts that ignore them), extension/custom-tool `approvalCacheTargets`, background-job widgets designed by a new `widget` model role (`async.widgets: false` to disable), job tiles/sparkline renderers in pi-tui, subagent-focused `/model` session-only switching, legacy pi shim restorations (`contentText`, `formatSkillsForPrompt`, `SettingsManager` shell settings). +- **Surface**: **UNCHANGED** — no change to `ctx.ui.setWidget/setStatus/notify`, `ctx.models.current().provider`, `ctx.modelRegistry.getApiKeyForProvider`, `ctx.sessionManager.getSessionName`, `ctx.setInterval`, `session_start`/`model_select`, or theme `{fg, sessionAccentInputs}`. The `ui.approve()` grant contract is additive and this plugin never calls `approve`; the new job-widget machinery is host HUD/status-line composition (a headline appended to the host's own jobs segment, beside this plugin's `setStatus("osl", …)` chunk), not a `setWidget` contract change; the 18.11.2 #15820 status-widget scrollback fix already covered the shrinking/growing-widget case. `tui.completeScrollback` is a host config default, not an extension API. +- **Session-JSONL schema**: unchanged — #16241 (keep a running tool's result through `/compact`, `/new`, session switch) and #16282 (persist snapcompact archive source text whole) are content fixes; the `type`/`cwd`/`id`/`message.role`/`message.usage.*`/`timestamp` fields read by `src/money.ts` are untouched. +- **Gates**: `pnpm typecheck` ✓; `pnpm test:run` 62/62 ✓, 0 fail (node v26.10.0). +- **Render sim (formatter-level)**: ✓ 11/11 exact-equality checks — info, prayer, zai 5hrs full-row + both-windows + empty, versions ×4 contract shapes incl. target probe `versionLine({omp:"18.12.3", sl:"0.8.6"})` and the tern variant, money, paceText, heat edges, formatResetAbs/formatGregorian/formatWeekday vectors — throwaway `/tmp` script mirroring the `test/lines.test.ts` stub-theme pattern. +- **Verdict**: **COMPATIBLE** → docs-only **patch** release 0.8.6. Version depictions synced in one pass: README feature-table row + `assets/hero.svg` versions tspan → `omp 18.12.3 · sl 0.8.6 · tern 0.7.2` (repo-wide grep for the old strings found exactly those two sites plus `package.json`; README `/sl` sample and `assets/dataflow.svg` carry no numeric version depiction). No layout change; `src/versions.ts` comment unchanged (`--version`-spawn mechanism untouched in 18.12.x). +- **Ship**: branch `chore/omp-18.12.3-compat` → PR to main → tag `v0.8.6` → CI publish → npm propagation probes → `omp plugin install --force` → live tmux render check (isolated socket). diff --git a/package.json b/package.json index c09aaf2..e27672b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@getpipher/omp-statusline", - "version": "0.8.5", + "version": "0.8.6", "description": "Six-line omp statusline widget: hijri clock, prayer times, API-spend ledger (REPO/DAY/7DAY/30DAY, subagent-inclusive), per-window zai coding-plan quota rows (provider-gated), and an omp/sl/tern version row.", "keywords": [ "pi-package",