diff --git a/README.md b/README.md index 1155c3a..5f61f3c 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.0 · sl 0.8.0 · 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.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. | **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/docs/COMPATIBILITY.md b/docs/COMPATIBILITY.md new file mode 100644 index 0000000..5cc3f1c --- /dev/null +++ b/docs/COMPATIBILITY.md @@ -0,0 +1,14 @@ +# Compatibility Archive — @getpipher/omp-statusline + +Per-run authoritative record, created on first use per `.omp/commands/compat-update.md` Step 6. One `## omp TARGET (DATE)` section per compat run: research, gates, render verification, verdict. + +## omp 18.9.2 (2026-10-12) + +- **Target**: omp v18.9.2 (published 2026-10-11); running binary already 18.9.2 at run time. +- **Research sources**: GitHub release notes (`gh api repos/can1357/oh-my-pi/releases/tags/v18.9.2`) + changelog embedded in the running binary (18.9.2 bundle spans 18.2.2→18.9.2). `~/.omp/agent/last-changelog-version` not used (dialog-gated, stale-prone). +- **Findings**: host-internal release — pi-ai judge renames (`TypeSafeJudge`→`NativeJudge`), coding-agent/tui responsiveness + `apply_patch`/`find`/`gc` fixes, native TSP rendering for Tern-in-tmux, Markdown-highlight and JSON-parse perf passes, Cloudflare Workers AI judge auth. +- **Surface**: **UNCHANGED** — no extension-context member, event, theme, session-JSONL schema, or plugin-loading change. The pi-ai breaking rename does not touch the extension `ctx` surface this plugin consumes. Tern-in-tmux TSP rendering is display-side; the widget's tern stamp env-gating (`TERM_PROGRAM`/`TERM_PROGRAM_VERSION`) is unaffected. +- **Gates**: `pnpm typecheck` ✓; `pnpm test:run` 62/62 ✓ (node v26.10.0). +- **Render sim (formatter-level)**: ✓ all six rows at a pinned instant (prayer, info, zai 5hrs+7DAY, money, versions `omp 18.9.2 · sl 0.8.0 · tern 0.7.2`) plus degradation probes (null omp/sl/tern segments, empty quota windows) — throwaway script mirroring the `test/lines.test.ts` stub-theme pattern. +- **Verdict**: **COMPATIBLE** → docs-only **patch** release 0.8.1 (README versions-row mock refreshed to `omp 18.9.2 · sl 0.8.1 · tern 0.7.2` via the real `versionLine` formatter; no layout change, no memory/schema updates warranted, `src/versions.ts` comment unchanged). +- **Ship**: branch `chore/omp-18.9.2-compat` → PR to main → tag `v0.8.1` (tag push triggers `release.yml`: typecheck → tests → npm publish → GitHub release). Live-level tmux verification runs against the installed 0.8.1 post-publish — omp sessions must restart to load a newly installed version. diff --git a/package.json b/package.json index 5dc6701..36d2855 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@getpipher/omp-statusline", - "version": "0.8.0", + "version": "0.8.1", "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",