Skip to content

v2.8.0

Latest

Choose a tag to compare

@github-actions github-actions released this 31 Jul 04:27

Published to npm as @bitkyc08/opencodex@2.8.0 with dist-tag latest.

What's Changed

New Features

  • feat(providers): add bounded model discovery contract by @olddonkey in #652
  • perf(gui): progressive dashboard paint and Startup safety CLS by @Wibias in #740

Bug Fixes

  • fix(responses): tell TLS hostname mismatches apart from an unreachable provider by @lidge-jun in #575
  • fix(claude): accept data-only Responses SSE (#700) by @snowyukitty in #711
  • fix(cursor): add kimi-k3 with low/high/max effort tiers by @koopmannleon19977-cmyk in #646
  • fix(ci): credit takeover authors and exempt stacked PR bases by @Wibias in #742
  • fix(catalog): single-flight gather, prewarm, and readable slash aliases by @Wibias in #738
  • fix(gui): gate Codex pool writes until hydrated and ignore stale strategy polls by @Wibias in #739
  • fix(gui): denser Storage, API Access, Subagents, Usage, and Claude layouts by @Wibias in #741
  • fix(update): tolerate late proxy readiness by @luvs01 in #737
  • fix(responses): reject expired forward continuations by @LeoWang331 in #749
  • fix(claude): version slash/tilde aliases under claude-ocx2- by @Wibias in #761
  • fix(openai-chat): complete streams that end after output without terminal by @Wibias in #773
  • fix(providers): honour Ollama private-network default during discovery by @Wibias in #775
  • fix(cli): doctor warns on empty provider apiKey env refs by @Wibias in #778

Chores

  • test(storage): give the policy suite an explicit harness budget by @lidge-jun in #732
  • Revert "fix(openai-chat): complete streams that end after output without terminal" by @Wibias in #792

New Contributors

Commits

  • release: v2.8.0 (1adad35)
  • Merge pull request #778 from lidge-jun/fix/762-doctor-apikey (afe2aa3)
  • Merge pull request #775 from lidge-jun/fix/758-ollama-discovery-policy (c3be57f)
  • fix(windows): resolve PATH whatever casing the child was handed (371aa57)
  • fix(windows): route every gh and release command through the shared launcher (0af17fb)
  • test(gui): cover the runtime-reported shadow-call model set (d12fb7d)
  • docs: describe the shadow-call model set as a set (e74de37)
  • fix(gui): render the intercepted models the runtime reports (c41aed9)
  • refactor(shadow-call): give the intercepted model set one home (7d9d260)
  • refactor(release): reuse the shared win-exec launcher (f23e446)
  • fix(scripts): derive harness validator bounds instead of hard-coding them (0dfd3ae)
  • feat(scripts): build the macOS RSS retention measurement harness (ba0bd0a)
  • fix(ci): repair the three failures the Windows panic was hiding (3569242)
  • docs(plan): validate the sampler on workload runs too (c300c6f)
  • docs(plan): fix the harness verdict logic the third audit caught (6c8ce5c)
  • docs(plan): rebuild the harness spec after two failed audits (0449802)
  • fix(storage): wait for storage workers to exit before the test file boundary (1a46299)
  • docs(plan): fold the five audit blockers back into the RSS unit (c777c8e)
  • feat(gui): move delegation settings onto the sub-agents page (8f53fee)
  • fix(gui): clear the two React Doctor findings blocking the push gate (4c7a8ea)
  • docs(plan): open the macOS RSS retention unit with measured evidence (4c8bc61)
  • fix(test): unblock the pre-push gate on two stale contract assertions (5dee96b)
  • fix(server): stop naming the write primitive in a route comment (e677dad)
  • docs(devlog): close WP6 criterion 7 with a live spawn and its control (ba22ffd)
  • fix: update OpenAI Fast pricing multipliers (df18d1e)
  • feat(catalog): let routed models serve as V2 subagents (option B) (a86da26)
  • docs(plan): record the list caps, the sticky header retry and the cache numbers (87afec5)
  • fix(test): stop tests from ever writing the real OpenCodex home (9b01323)
  • fix(gui): cap the two long lists without trapping the wheel (87681e5)
  • docs(structure): close the route coverage gap and record the unit outcome (62ac81d)
  • docs(structure): complete the workflow map and fix the tier backup rule (940c83b)
  • docs(structure): document the management route areas the doc had skipped (1bffc28)
  • docs(structure): reverse the Claude Desktop path claim and document both sidecar backends (830cf7b)
  • docs(plan): record wp7 as PARTIAL and what the doc audit uncovered (b359d4f)
  • test(api): make the modality clear-path test actually prove clearing (6e32cb4)
  • fix(api): reject non-string input modalities instead of filtering them out (299f35d)
  • fix(api): reject out-of-enum input modalities at the custom-model routes (7a041e2)
  • docs(structure): split the two injection forms and correct the catalog doc (2fdf042)
  • docs(cli): document every per-model ocx models operation (a3c3220)
  • docs(structure): correct the overview and runtime maps (077af3f)
  • docs(plan): record wp8, including the claim the audit refuted (f34b955)
  • test(catalog): pin the #759 incident sequence at the sync write boundary (2e7fc00)
  • docs(plan): record the wp6 alignment measurements and the kept descriptions (df1e912)
  • fix(gui): centre the auto-switch toggle and name the rotation strategy field (cc27464)
  • docs(plan): record the measured quota duplication and its fix (1dd481a)
  • perf(gui): read provider quotas once per cold load, not once per provider (6d13736)
  • fix(gui): uncap the Usage model and provider tables (ed19e1d)
  • docs(plan): record the hidden-tab poll gate and the tab layout revert (d211970)
  • fix(gui): drop the duplicated Usage section heading (ea918a9)
  • fix(gui): make Usage, Storage and Subagents readable by scrolling again (5aa51b9)
  • perf(gui): stop passive polling in a hidden tab, with an opt-out (aa44baf)
  • test(codex): pin the feature-flag delegation boundary (8a857df)
  • plan(structure): map the SOT refresh with a measured drift inventory (b6ed7eb)
  • feat(server): sideband URL policy hardening with a bounded override knob (5759362)
  • plan(gui): fold the wp4 audit into the revalidation policy (ff19e40)
  • feat(server,cli): expose agents.enabled, max_depth, subagent_developer_instructions via /api/v2 and ocx v2 status (6c61d31)
  • plan(gui): sidebar star + update orbs, startup-chip sync, panel copy (4055491)
  • feat(codex): config-surface parity for agents.enabled, agents.max_depth, subagent_developer_instructions (f83ae9d)
  • test(gui): assert the delegation copy contract by meaning, not by sentence (7391748)
  • test(server): prove the sidebar routes answer and leak nothing (363752a)
  • docs(plan): close the devlog publication unit against what actually landed (13c36cd)
  • feat(gui): add sidebar star and update orbs (b6a2d28)
  • fix(gui): close the WP3 audit blockers and stop the startup chip waiting 30s (e64a00e)
  • fix(codex): translate the v1/v2 thread limit across the root-agent slot (06ad07c)
  • test(bun-runtime): resolve the temp root so macOS paths compare equal (f81e98a)
  • fix(runtime): normalize Bun override path (7fe367e)
  • refactor(launcher): share Bun binary validation (8fc20a4)
  • fix(launcher): harden override handling (77707ea)
  • fix(launcher): honor OPENCODEX_BUN_PATH (4985402)
  • fix(test): address runtime cache review feedback (ec32bb6)
  • fix(catalog): stop respawning the codex --version probe on every catalog read (9e61371)
  • docs(plan): stop quoting the sentinel values in the landing plan (f897e81)
  • fix(providers): harden discovery path and test isolation (fd19330)
  • fix(providers): harden discovery contract cleanup (860f216)
  • fix(tray): isolate Windows tray host from proxy sockets (2ca8375)
  • docs(cli): describe Windows service status (e428058)
  • fix(service): make Windows status locale independent (1d9e196)
  • fix(privacy): stop the scanner flagging its own publication proof (50cbf51)
  • refactor(devlog): publish devlog as tracked files and retire the private submodule (8ae52e4)
  • feat(gui): finish the loading contract on Storage, API keys and Models (e45f6f1)
  • chore(devlog): advance the plan submodule to a9cd169 (deb1bf5)
  • feat(gui): put eight more surfaces on the shared loading contract (fe86368)
  • chore(devlog): advance the plan submodule to 5b7ab2d (4477e06)
  • feat(gui): migrate Grok onto the shared loading contract (bd1771c)
  • feat(gui): make slow data loads visible with a shared loading contract (960c53d)
  • chore(devlog): advance the plan submodule to 5f35c78 (b4889c4)
  • chore(devlog): advance the plan submodule to 66fe483 (11d1444)
  • Merge pull request #792 from lidge-jun/revert-773-fix/735-openai-chat-eof (440f363)
  • Revert "fix(openai-chat): complete streams that end after output without terminal" (2093bac)
  • Merge pull request #773 from Wibias/fix/735-openai-chat-eof (5718d44)
  • fix(openai-chat): fail closed on EOF with pending tool calls (38173bf)
  • fix: address issue #762 (8d48d1e)
  • fix: address issue #758 (51f9546)
  • fix: address issue #735 (cc81b9c)
  • Merge pull request #761 from Wibias/fix/alias-versioned-tilde-encoding (be177ea)
  • docs(claude): sync v1/v2 alias grammar across locales (0afaf7f)
  • fix(claude): version slash/tilde aliases under claude-ocx2- (47a7a91)
  • merge: back-merge main (v2.7.43) into dev (350a07b)
  • merge: PR #737 — tolerate late proxy readiness (#720) (62e9376)
  • merge: PR #749 — fail closed on expired forward replay state (#702) (6be54f5)
  • test(scripts): name CPU contention instead of letting it look like a hang (cf30878)
  • chore(devlog): advance the plan submodule to 8f2d930 (d757183)
  • fix(gui): restore the dev CI baseline (959e9ff)
  • fix(responses): fail closed on expired forward replay state (6521518)
  • fix(ci): repair the prepush gate after the 260730 GUI stack (d0141e7)
  • chore(devlog): advance the plan submodule to 7dffc79 (0b86278)
  • test(claude): shorten the dotenv fixture key so privacy:scan stays green (15fd1b3)
  • chore(devlog): advance the plan submodule to f76fc29 (c402994)
  • fix(web-search): carry raw reasoning into the replayed web_search turn (89931a1)
  • fix(claude): stop a project dotenv from overriding claude.ai subscription auth (d5b9338)
  • Merge pull request #741 from lidge-jun/stack/gui-dense-workspaces (e449521)
  • Merge pull request #740 from lidge-jun/stack/gui-dashboard-startup-perf (085f8f1)
  • Merge pull request #739 from lidge-jun/stack/gui-codex-pool-hydration (a780281)
  • Merge pull request #738 from Wibias/stack/gui-catalog-cold-load (9d94c92)
  • fix(gui): address CodeRabbit follow-ups on dense workspaces (f0acc36)
  • fix(gui): clear react-doctor warnings on dense workspaces (27e3762)
  • fix(gui): address Codex review on dense workspaces stack (904e670)
  • fix(gui): clear react-doctor warnings on dashboard stack (a2072d5)
  • fix(gui): address review findings on dashboard/startup stack (7481715)
  • perf(gui): progressive dashboard paint and Startup safety CLS (ee3eaa2)
  • fix(gui): address remaining pool hydration review nits (297ceef)
  • fix(gui): address Codex review on pool hydration stack (fa443c0)
  • fix(gui): gate Codex pool writes until hydrated and ignore stale strategy polls (c4c98c0)
  • fix(catalog): include visibility filters in gather flight key (ca05c57)
  • fix(ci): credit takeover authors and exempt stacked PR bases (#742) (45e9dc4)
  • docs: sync ~s/~t alias grammar in zh-cn/ja/ru claude-code guides (772ee11)
  • test(cli): cover catalog prewarm on handleStart bind (ee06d6b)
  • fix(catalog): harden alias encoding and gather single-flight identity (8ac098a)
  • fix(catalog): single-flight gather, prewarm, and readable slash aliases (818fcd8)
  • fix(update): tolerate late proxy readiness (11069f0)
  • chore(devlog): advance the plan submodule to 6c74ce6 (0666b41)
  • chore(devlog): advance the plan submodule to eaf4786 (4da468c)
  • test: stop two suites from sharing one fixture home (622cdc0)
  • chore(devlog): advance the plan submodule to bb5c7de (616ea99)
  • test(storage): give the policy suite an explicit harness budget (#732) (60e1004)
  • chore(metadata): resync jawcode bundle, re-block hy3-preview, add a drift guard (67c731e)
  • chore(scripts): let jawcode metadata carry video input (ef805c3)
  • fix(cursor): add kimi-k3 with low/high/max effort tiers (#646) (275345a)
  • test(kiro): clear the platform store between seeds, not just the macOS one (bfacc3b)
  • fix(kiro): make native-store resolution platform-correct off macOS (#718) (8f499a4)
  • chore(devlog): advance the plan submodule to 7dff38d (a40689c)
  • test(kiro): use an allowlisted home fixture in the macOS path case (e4153e1)
  • test(ci): follow the test job's raised timeout ceiling (a76bf41)
  • chore(devlog): advance the plan submodule to bb30ba6 (05169df)
  • feat(service): offer the star prompt on hand-typed service install (3cb2462)
  • fix(cli): keep the selected confirm choice readable on any theme (d2f9863)
  • ci: give the Windows test job real timeout headroom (#717) (5bf66df)
  • fix(kiro): stop proxy filler from preceding a mid-turn steer (12dbec3)
  • fix(kiro): discover the Windows kiro-cli token DB on login import (#710) (c7fe9e8)
  • test(kiro): cover the real upstream shape that omits tokenUsage (47cc9a5)
  • fix(claude): accept data-only Responses SSE (#711) (d24c523)
  • feat(providers): add bounded model discovery contract (#652) (48f2e83)
  • fix(responses): tell TLS hostname mismatches apart from an unreachable provider (#575) (fff8c36)
  • docs(structure): point devlog evidence references at _fin (c4b05fa)
  • feat(gui): show the active-context checkpoint on Kiro log rows (ee69abf)
  • fix(usage): persist the absolute context checkpoint in usage rows (e3f4068)
  • docs: require primary-source evidence for canonical provider presets (aa22207)
  • chore: move devlog to a private submodule and require scratch-only security notes (f8d1dc1)
  • docs: match the dev2-go retirement record to the executed cleanup (010d340)
  • chore: retire the dev2-go Go native-port line (2230914)

Full Changelog: v2.7.43...v2.8.0