Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.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. |
| **versions** | `󰚦 omp 18.12.5 · sl 0.8.7 · 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%+`.

Expand Down
2 changes: 1 addition & 1 deletion assets/hero.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
12 changes: 12 additions & 0 deletions docs/COMPATIBILITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,3 +64,15 @@ Per-run authoritative record, created on first use per `.omp/commands/compat-upd
- **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).

## omp 18.12.5 (2026-10-22)

- **Target**: omp v18.12.5; running binary is the Tern-managed 18.12.5 (resolved by content: the Tern shim `~/Library/Application Support/Tern/omp/bin/omp` carries the `## [18.12.5]` bundle). Baseline: 18.12.3 (v0.8.6).
- **Research span**: v18.12.4 + v18.12.5. Primary source: GitHub release bodies via `gh api` (complete for both). Secondary: changelog embedded in the running 18.12.5 binary — both `## [ver]` headings present; 79 window content lines checked against the bodies on an ASCII projection (strings drops multibyte `×`/`→` bytes mid-line), **0 contradictions, 0 unexplained artifacts** — strict subset, overlap agrees.
- **Findings**: 18.12.4 — breaking `readTarEntriesFromBuffer()` now returns `Promise<ArchiveIndexEntry[]>` in `@oh-my-pi/pi-utils/ar/tar` (compile-time unreachable: this plugin has zero `@oh-my-pi/*` imports; ctx types are vendored); additive `ctx.ui.getEditorComponent()` (editor-wrapping; unused by this plugin); pi-tui additions `mergeLineRanges`/`BareLineMode`, `footerMeta` on `OutputBlockOptions`/`ToolCardSnapshot`, Eval `mcp_progress` status events (host tool-card/status composition, not the `setWidget` contract); bash-card `footerMeta` rendering and wait/jobs HUD changes are host tool-card chrome; plugin lockfile now written 0600 (perm fix only, format unchanged). Host fix that helps this plugin class: #12293/#12653 — omp no longer exits when the model picker (Alt+P) opens after compatibility extensions load. 18.12.5 — OpenAI 12h prompt-cache TTL (`cacheRetention: "long"`, pi-ai/catalog), Moonshot kimi-k3 cache-write pricing fix (host catalog; `src/money.ts` computes costs from session `message.usage.*`, not host pricing tables), subagent caller-effort fix, `omp update --check` Artifactory dist-tags fix, `:conflicts` >10 MiB hint, macOS background-click fix — none touch the extension surface.
- **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`, theme `{fg, sessionAccentInputs}`, or the `sl` command. New API members in the span are additive and unused here.
- **Session-JSONL schema**: unchanged — the span's session items (`PI_SESSION_ID`/`PI_SESSION_FILE` env for bash #16442, session-branch replay fix #16483, word-completion daemon reuse #16380) are additive/host-side; 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)**: ✓ 6/6 exact-equality groups — prayer, info, zai full-row + heat bands + capped `100%+` + both-windows + empty, versions ×3 contract shapes incl. target probe `versionLine({omp:"18.12.5", sl:"0.8.6"})`, money, paceText/heat/formatResetAbs/formatGregorian/formatWeekday vectors — throwaway `/tmp` script mirroring the `test/lines.test.ts` stub-theme pattern.
- **Verdict**: **COMPATIBLE** → docs-only **patch** release 0.8.7. Version depictions synced in one pass: README feature-table row + `assets/hero.svg` versions tspan → `omp 18.12.5 · sl 0.8.7 · 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.5-compat` → PR to main → tag `v0.8.7` → CI publish → npm propagation probes → `omp plugin install --force` → live tmux render check (isolated socket).
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@getpipher/omp-statusline",
"version": "0.8.6",
"version": "0.8.7",
"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",
Expand Down
Loading