- Introduce `@oh-my-pi/omptype` as a new ArkType-compatible schema validation package featuring a lazy JIT runtime, JSON Schema emission, and compatibility adapters.
- Replace `arktype` across workspace packages and test utilities with `@oh-my-pi/omptype`.
- Add benchmark suites, tests, and documentation for the new validation engine and adapters.
- Update workspace build, test runner, and release configurations to include the new package.
- Implement the OMP Browser Relay extension with WebSocket communication and CDP RPC execution.
- Add browser relay server, daemon management, and bridge multiplexing in the coding agent.
- Introduce CLI commands and settings schema options for configuring and installing the relay.
- Add utility functions and test suites supporting environment parsing and relay lifecycle handling.
- The 17.2.1 bump was regenerated under local bun 1.4.0, which wrote
lockfileVersion 2; the CI-pinned bun 1.3.x fails parsing it with
UnknownLockfileVersion before any job step runs.
- Resolutions unchanged (490 installs across 637 packages, no changes);
verified with bun@1.3.14 install --frozen-lockfile.
- The 17.2.0 bump regenerated the lockfile under a bun 1.4 canary, writing
lockfileVersion 2, which the CI-pinned bun 1.3.x cannot parse: every job
failed at bun install with UnknownLockfileVersion before running anything.
- Resolutions are unchanged (490 installs across 637 packages, no changes);
only the lockfile format fields moved back to version 1.
- Implemented native UTF-16 text processing in Rust diff module with support for unpaired surrogates.
- Removed `similar` crate from Rust workspace and `diff` npm package from coding-agent, hashline, and natives.
- Removed jsdiff fallback wrappers and `isWellFormed()` guards from TypeScript diff implementations.
- Added comprehensive test suite for native diff functions covering random inputs and edge cases including surrogates and emoji.
- Renamed model `codex-auto-review` to `gpt-5.3-codex-spark` with updated pricing and context window.
Semantic merge with #5734 (delivered-prefix reconciliation) and #5748
(fallback chains): kept the coalescing round cap and wip threading,
adopted bounded cursor-preserving maintenance resets and overflow
recovery, and gated late-arrival consumption on coalescing rounds so
both suites' backlog and preserved-updates contracts hold.
- Parsed nested marked text tokens through the inline parser.
- Added browser-template regression coverage for ordered, unordered, and nested lists.
Fixes#5567
Extended the OTLP export bootstrap beyond traces so omp emits the full
OpenTelemetry signal set from a single session.
- Registered a LoggerProvider + BatchLogRecordProcessor and a MeterProvider
+ PeriodicExportingMetricReader when their OTLP endpoints (or the shared
endpoint) are set, each gated independently by OTEL_*_EXPORTER=none,
OTEL_SDK_DISABLED, and http/protobuf protocol checks.
- Bridged the centralized logger through a new registerLogSink API so every
log event also becomes an OTLP log record with severity, attributes, and
active span context for log-trace correlation (min level via OTEL_LOG_LEVEL).
- Recorded gen_ai.client.token.usage and pi.omp.agent.* metrics from the
agent run summary and per-chat usage hooks, and emitted a structured run
summary log event.
- Added an out-of-process logs+metrics probe and gating tests covering the
per-signal kill switches.
Fixes#4604
- Anchored advisor compaction on provider-reported context usage (cached
input + generated output) floored by a full local estimate including the
advisor system prompt and tool schemas, so a near-full cached context is no
longer undercounted by the per-message estimate.
- Rejected stale provider usage retained across advisor compaction via a
runtime-only usage-anchor boundary recorded on the summary message.
- Recovered provider overflow by clearing only the advisor's own context at
the current primary cursor, retrying the bounded failing batch once against
a fresh context without replaying old primary history, and keeping later
updates eligible.
- Threaded the selected dashboard range through the stats Recent Errors UI,
API, and database timestamp filter before ordering and the 50-row limit.
Fixes#5282
- Added `packages/metaharness/scripts/trace-report.ts` to generate markdown reports with turn logs and narratives.
- Implemented API loading of run traces and run metadata so each report includes run context and final assistant message.
- Added concurrency-limited turn mapping with retries, progress logs, and token usage tracking for model calls.
- Documented the new `trace-report` CLI, its flags, and invocation examples in `packages/metaharness/README.md`.
- Added `scripts/tsconfig.json`, integrated it into `check:types`, and added `@oh-my-pi/pi-catalog` dependency entries.
- Renamed and migrated package-level artifacts from `harbor-manager` to `metaharness`.
- Updated metaharness core services (`server`, `runner`, `store`, `experiments`) with substantive logic edits.
- Synced CLI, local agent, and config wiring to align with the metaharness package structure.
- Refreshed benchmark-related documentation/prompts and expanded tests for the revised metaharness flow.
- Added a process-wide `__harborManagerHooks` flag on `globalThis` so signal and unhandled-rejection handlers are registered only once during Bun `--hot` re-execution.
- Added `isDevStreamTeardown` handling to ignore `ERR_STREAM_RELEASE_LOCK` unhandled rejections from dev stream teardown while rethrowing all other unhandled rejections.
- Added `react-refresh` to the Harbor Manager package manifest and lockfile dependencies.
- Upgraded `@agentclientprotocol/sdk` from `0.25.0` to `1.2.1` and `@ark/schema` from `0.56.1` to `0.56.2` in `package.json` and `bun.lock`, updating `patchedDependencies` and override entries accordingly.
- Updated lockfile package metadata to match new manifest versions, including TypeScript `7.0.2`, arktype `2.2.3`, and several related dependency/version dependency-tree entries.
- Added a new `@agentclientprotocol/sdk@1.2.1` patch that extends the package exports with `./dist/schema/zod.gen.js` including type and default import mappings.
- Removed the Google Interactions transport and deleted interaction-specific request options from the shared AI stream typing/API surface.
- Simplified Google provider routing to eliminate interactions auto-selection logic and keep `streamGoogle` on the `:streamGenerateContent` path.
- Updated Vertex request handling to use resolved stream hosts without `/interactions`/`Api-Revision` and removed related interaction constants.
- Deleted obsolete Interactions tests and updated remaining Google stream tests to no longer reference `useInteractionsApi`/`storeInteraction`/`previousInteractionId`.