diff --git a/README.md b/README.md index f380c08..aa729ef 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.9.2 · sl 0.8.1 · 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.10.1 · sl 0.8.3 · 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 0227cea..073fc17 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.9.2 · sl 0.8.1 · tern 0.7.2 + omp 18.10.1 · sl 0.8.3 · 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 2c40641..45ebe29 100644 --- a/docs/COMPATIBILITY.md +++ b/docs/COMPATIBILITY.md @@ -19,3 +19,14 @@ Per-run authoritative record, created on first use per `.omp/commands/compat-upd - **Findings**: Bedrock `supportsThinkingBindingControls` plumbing across pi-ai / pi-catalog / pi-coding-agent (`models.yml` compat axis), pi-natives fix for shebang-less executables in the embedded shell, pi-tui fix for inline chart/image overlap artifacts. - **Surface**: **UNCHANGED** — no extension-context, theme, session-JSONL, or plugin-loading change. - **Disposition**: no separate release; covered by the 0.8.1 docs-only patch alongside 18.9.2. Hero.svg version row synced to `omp 18.9.2 · sl 0.8.1 · tern 0.7.2` in the same pass. + +## omp 18.10.1 (2026-10-12) + +- **Target**: omp v18.10.1; running binary (Tern-hosted) already 18.10.1 at run time. Baseline: 18.9.2 (v0.8.1) + v0.8.2 shipped after it (PR #13, advisor-scan fix — no compat research owed, host untouched). +- **Research span**: v18.10.0 + v18.10.1, both sources (GitHub release bodies via `gh api`, changelog embedded in the running 18.10.1 binary — windows agree). +- **Findings**: 18.10.0 — pi-tui **breaking removals** (`RuntimeChildrenOptions.transient`, `Component.retireDisplacedTranscript`, `Composer.pinInputToBottom()`), native IPC transport for local endpoints, ask-dialog hide (`Alt+H`), `omp session pack/unpack/moved` + `omp auth export/import`, codex context-window bump. 18.10.1 — Tern-native UI polish (turn-footer Copy button, compact running counters, picker sheets, extension text editor rendered as a composer sheet), `CountdownTimer.elapsed` native fix. +- **Surface**: **UNCHANGED** — no extension-context member (`ctx.ui.*`, `ctx.models.current().provider`, `ctx.modelRegistry.getApiKeyForProvider`, `ctx.sessionManager.getSessionName`, `ctx.setInterval`), event (`session_start`/`model_select`), theme field (`fg`, `sessionAccentInputs`), or session-JSONL schema change (`src/money.ts` fields untouched). The pi-tui removals are compile-time-unreachable: the plugin has **zero** `@oh-my-pi/*` imports (vendored context types; only a comment names pi-utils). The extension-editor-as-sheet change doesn't apply — the plugin opens no editor, it uses `setWidget`/`setStatus`/`notify` only. +- **Gates**: `pnpm typecheck` ✓; `pnpm test:run` 62/62 ✓, 0 fail. +- **Render sim (formatter-level)**: ✓ all six line families exact-equality-asserted against suite-approved strings (prayer, zai 5hrs/7DAY/over/heat-bands/empty, info, versions ×4 contract shapes, money, paceText, heat edges) + target-shape probe `versionLine({omp:"18.10.1", sl:"0.8.3", tern:…})` — throwaway `/tmp` script mirroring the `test/lines.test.ts` stub-theme pattern. +- **Verdict**: **COMPATIBLE** → docs-only **patch** release 0.8.3 (0.8.2 was the PR #13 fix). Version depictions synced in one pass: README feature-table row + `assets/hero.svg` versions tspan → `omp 18.10.1 · sl 0.8.3 · tern 0.7.2` (README `/sl` sample and `assets/dataflow.svg` carry no numeric version depiction). No layout change; `src/versions.ts` comment unchanged (stamp mechanism untouched in 18.10.x). +- **Ship**: branch `chore/omp-18.10.1-compat` → PR to main → tag `v0.8.3` → CI publish → npm propagation probes → `omp plugin install --force` → live tmux render check (isolated socket). diff --git a/package.json b/package.json index 710dd99..28907be 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@getpipher/omp-statusline", - "version": "0.8.2", + "version": "0.8.3", "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",