diff --git a/CHANGELOG.md b/CHANGELOG.md index ec361b1..5c11fd5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,139 @@ This project is an evolution of [**`nobu121/dsh-opencode-session`**](https://git --- +## [0.16.0](https://github.com/viztor/dsh-opencode-patch/compare/v0.15.0...v0.16.0) (2026-10-09) + + +### Features + +* a rejected Go credential says so, instead of 'unavailable' ([a76514d](https://github.com/viztor/dsh-opencode-patch/commit/a76514d19346aeb8b827c24a73835f1cb3817922)) +* add manifest deprecation, redirect README, and runtime notice for legacy package ([0135912](https://github.com/viztor/dsh-opencode-patch/commit/013591224e71cdc0a0b7852aa67a8b669bc3aafe)) +* alias legacy dsh-opencode across loader, settings, and publishing ([b76cb4d](https://github.com/viztor/dsh-opencode-patch/commit/b76cb4db07ce4ccd186ca76f277c45fc0dc94166)) +* auto releases, GitHub Packages mirror, and verified-compat docs ([43254a3](https://github.com/viztor/dsh-opencode-patch/commit/43254a362371e4032eb1cadb3612ee45d093f97d)) +* auto-discover opencode-go apiKeyEnv, apiKey, and baseURL from user config ([cf797c1](https://github.com/viztor/dsh-opencode-patch/commit/cf797c1799ee417abb5d39376a2d427cc9968a95)) +* auto-enrich gateway /models responses with canonical 33-model catalog ([d4ca931](https://github.com/viztor/dsh-opencode-patch/commit/d4ca931d656422a8655db2b4aab34c83e3714bc1)) +* bundle icon for plugin display surfaces ([32cc765](https://github.com/viztor/dsh-opencode-patch/commit/32cc76527bc79dcf7dca0a7c357565c56598f050)) +* complete settings UI coverage and drop session cache table ([31e6b0e](https://github.com/viztor/dsh-opencode-patch/commit/31e6b0e88b13263f0d3b13552a1d439be768b4f5)) +* cover the Anthropic plane too, keyed off the vendor's SDK ([876647f](https://github.com/viztor/dsh-opencode-patch/commit/876647f70328a36ff453c122fc7703e4e2420692)) +* dual-catalog SWR updates (Go + Zen free models) and routed key resolution ([dde9d6e](https://github.com/viztor/dsh-opencode-patch/commit/dde9d6e1e57f629a90c9762ef199cf40feed890c)) +* dynamically attribute x-opencode-project to workspace directory ([57a9b60](https://github.com/viztor/dsh-opencode-patch/commit/57a9b6098d29ce0ca748aca7c937202e09116096)) +* expose usage monitor settings in Web UI and mount in composer dock ([6d2dd34](https://github.com/viztor/dsh-opencode-patch/commit/6d2dd346187e603ee250dcc7dd3a7536a11b1d8c)) +* implement thin wrapper pattern for legacy @viztor/dsh-opencode package ([7e87eb8](https://github.com/viztor/dsh-opencode-patch/commit/7e87eb868c674ca0317772e4acee99848d62efee)) +* inject x-session-affinity and x-parent-session-id for proxy and gateway compatibility ([f59cad3](https://github.com/viztor/dsh-opencode-patch/commit/f59cad3dd987c726f56fb0bef1e91c97450ff97b)) +* link the console, and document why balance cannot be shown ([92e990c](https://github.com/viztor/dsh-opencode-patch/commit/92e990cc9600488f0bf6e8d937ce40d4ed6a3894)) +* make gateway, origin, session, and quota-meter behavior configurable ([1b25355](https://github.com/viztor/dsh-opencode-patch/commit/1b25355e080046d6df4d26694d0de800035d80f3)) +* make quota meter provider-based, remove UI debug fields, and enhance provider discovery ([6c4a3e5](https://github.com/viztor/dsh-opencode-patch/commit/6c4a3e5a0ac10f7335664c9ec56403961958c5ae)) +* mount the host's own llm-pi-ai below an isolated auth scope ([988da40](https://github.com/viztor/dsh-opencode-patch/commit/988da40fc5e830e87adf117a4caa1c3b1f102148)) +* own the Responses route from the plugin, so the user changes nothing ([6bdbcbb](https://github.com/viztor/dsh-opencode-patch/commit/6bdbcbb44cce78214bbc520a4e8a3b603388ad62)) +* real-time Stale-While-Revalidate (SWR) model catalog updating with local shim ([3c6ba24](https://github.com/viztor/dsh-opencode-patch/commit/3c6ba24df466bc7f8f9a89ec225d4913f661f5d9)) +* refine Go and Zen usage display and attach available Zen credit ([954714c](https://github.com/viztor/dsh-opencode-patch/commit/954714c07b483c3f47667f045a13fef9f083009a)) +* rename to dsh-opencode-patch and add live OpenCode Go quota pill ([5cf0f33](https://github.com/viztor/dsh-opencode-patch/commit/5cf0f332ebddfa412aa926492d90017d47d0b2f7)) +* render circular meter trigger and rich hover modal for quota breakdown ([de59fd6](https://github.com/viztor/dsh-opencode-patch/commit/de59fd6c3a402eb2c4f8f992c3607ec530157677)) +* replace boolean text inputs with Switch toggles in settings card ([f26767b](https://github.com/viztor/dsh-opencode-patch/commit/f26767b3646b2325a89f7a7be9ca716c7f6708a8)) +* replace originProject text override with natural language injectProject toggle ([21b12a6](https://github.com/viztor/dsh-opencode-patch/commit/21b12a6494b5ed90d19a7fa649c9ca2101756074)) +* restyle the icon into the Harness icon family ([921c0d4](https://github.com/viztor/dsh-opencode-patch/commit/921c0d442da0ed7b513c1bad8429cd727ce83162)) +* route each OpenCode Zen model to the API its own SDK names ([46e694b](https://github.com/viztor/dsh-opencode-patch/commit/46e694bff44da188603ba72237c06cf571d71d89)) +* say when the Go plan is what ran out ([a9a8067](https://github.com/viztor/dsh-opencode-patch/commit/a9a806779e4f524614da42f961ca57bb9ff1ed55)) +* seat the meter beside the model selector ([e7743ed](https://github.com/viztor/dsh-opencode-patch/commit/e7743ed7a719fba8bf8e137e56c6a2f838480b70)) +* serve OpenCode's Responses-only model by re-dispatching, not translating ([18118f4](https://github.com/viztor/dsh-opencode-patch/commit/18118f42334fe70e4cb32030513b2ab1803b6ef0)) +* session spend tracking, catalog/price toggles, and split test suite ([8855c66](https://github.com/viztor/dsh-opencode-patch/commit/8855c661ea92e061dba41782f997b0a6efb0759f)) +* **session:** the id carries the session's real createdAt ([6885996](https://github.com/viztor/dsh-opencode-patch/commit/6885996065e62f98b4931da3f32fc27d5e3444f1)) +* show session spend in the Zen trigger instead of the title ([f9f6b32](https://github.com/viztor/dsh-opencode-patch/commit/f9f6b32f7da252ad1e20ed6ef0f69ea3e0f8715d)) +* support x-opencode-parent-session-id for DSH subagents and child sessions ([3a7f110](https://github.com/viztor/dsh-opencode-patch/commit/3a7f11009755f96f21aa5a2f655f6fb4382a2d28)) +* the free model's ring goes hollow, and the windows get their bars back ([923ba4e](https://github.com/viztor/dsh-opencode-patch/commit/923ba4eb662d2f84292745b202c737da64a5cf94)) +* the Go panel says what the percentage is a percentage OF ([2fa05fb](https://github.com/viztor/dsh-opencode-patch/commit/2fa05fbbdb8b990f7cff9e10843e89c8594fd68f)) +* the meter shows the 5-HOUR window, and the hover lists all three ([d80c680](https://github.com/viztor/dsh-opencode-patch/commit/d80c680ecf43e2353ae06db84adaea69c3dd794f)) +* the meter's footer, and a rate that follows the picker ([9c3a15b](https://github.com/viztor/dsh-opencode-patch/commit/9c3a15b7671737b82ad413aeb11d9a50e085ea8e)) +* the overflow card carries a billing note, not estimates ([73fa17c](https://github.com/viztor/dsh-opencode-patch/commit/73fa17cd3f3233163d2c44d0374a547b1fbe85f3)) +* the plugin card shows Go usage and status, with what is left on the side ([33eee2d](https://github.com/viztor/dsh-opencode-patch/commit/33eee2d8a808bc1bb5dac8726e5a06527feb7008)) +* the ring is a Go gauge, so Zen does not draw one ([3cb5019](https://github.com/viztor/dsh-opencode-patch/commit/3cb501988c3cf91c73ff82ea51dce7d715d1c737)) +* the spend row always renders, the Zen hover carries the price, and the meter has a Chinese behaviour doc ([7fc0c70](https://github.com/viztor/dsh-opencode-patch/commit/7fc0c7010e0477fb6aae0ea2d98afb213061be2c)) +* the Zen tooltip answers "how much is left" ([e967bd4](https://github.com/viztor/dsh-opencode-patch/commit/e967bd498bc82e897d861b41d1db3ed64d4ab857)) + + +### Bug Fixes + +* a custom gateway gets catalog enrichment, not just headers ([f47df8f](https://github.com/viztor/dsh-opencode-patch/commit/f47df8f584ac4cbf0730f776770e5d38c3b82e60)) +* a model or provider switch re-reads immediately, not on the next tick ([be8d27e](https://github.com/viztor/dsh-opencode-patch/commit/be8d27eb17d3dc915c70bd06e363e4fb03637fcd)) +* a refresh click completes a full spin, however fast the read is ([2cdcc66](https://github.com/viztor/dsh-opencode-patch/commit/2cdcc66f25f0e9e580d99307409baae9f988c8eb)) +* apply request patch to auto-review calls and inject session-id headers ([30d04ee](https://github.com/viztor/dsh-opencode-patch/commit/30d04eeb41bf6d66c61b4cb6cb7d1b7af2db4656)) +* call the Host's listing with its own service as the receiver ([3099611](https://github.com/viztor/dsh-opencode-patch/commit/3099611052019372e99817e22fb8c18bb03534f2)) +* cordis row name must equal npm package name ([f2474eb](https://github.com/viztor/dsh-opencode-patch/commit/f2474eb4fe37b589dfd56f7c02f4b9697f27948b)) +* declare remote.opencodeGoUsage now that the host registers it ([89c265f](https://github.com/viztor/dsh-opencode-patch/commit/89c265fabcfa4298bdac1bfddc2d2a6766d2afa3)) +* declare remote.opencodeGoUsage, the meter's own remote ([c217868](https://github.com/viztor/dsh-opencode-patch/commit/c217868711577f21a2826f1208a037b7e630615f)) +* declare remote.session, which is its own inject key ([dbcc029](https://github.com/viztor/dsh-opencode-patch/commit/dbcc0295af3831e4633cf63731769548059cb1af)) +* declare the quota method as Remote instead of hand-rolling a contribution ([c83d75b](https://github.com/viztor/dsh-opencode-patch/commit/c83d75b0713404f2d70a11aaf3b788beb65dc832)) +* declare the remote service the model directory reaches through ([1548e6a](https://github.com/viztor/dsh-opencode-patch/commit/1548e6aef8182532df8b2033a7e8f25c764e5355)) +* describe a live model neither the catalog nor the shim knows ([17e35bc](https://github.com/viztor/dsh-opencode-patch/commit/17e35bc3b4873956463cec627cc1c3ac32e2a33e)) +* draw the quota meter once, and only when Go is configured ([5a85814](https://github.com/viztor/dsh-opencode-patch/commit/5a85814bba0d4c0c7d040b987069f3225b7b7c2e)) +* drop the pnpm allowBuilds placeholder an aborted install left behind ([1ec2543](https://github.com/viztor/dsh-opencode-patch/commit/1ec254324a0ec7d8c3ae66a124e65dce2e681160)) +* **e2e:** the free-tier gate now fires on every endpoint ([01d130c](https://github.com/viztor/dsh-opencode-patch/commit/01d130cf330603b2856126d698043bd658ceb1b0)) +* each panel answers for its OWN balance's spend ([ef144e1](https://github.com/viztor/dsh-opencode-patch/commit/ef144e121518253e626899d97dde1afdfd051c51)) +* exempt bot-owned CHANGELOG from formatter, use PAT for release-please ([faff146](https://github.com/viztor/dsh-opencode-patch/commit/faff146f3cbe9f7d25103848ee0dae38e4a76552)) +* fail the gate when lib/ is missing or older than src/ ([3aa4bd7](https://github.com/viztor/dsh-opencode-patch/commit/3aa4bd797062df4177286515872ac67e2a519a30)) +* give the pill's fallback store a stable snapshot ([1b5613e](https://github.com/viztor/dsh-opencode-patch/commit/1b5613ec91c0e67963c52021bc5a495640832b7a)) +* isolate Go usage queries to Go keys and ignore Zen keys for quota endpoint ([a39bc6f](https://github.com/viztor/dsh-opencode-patch/commit/a39bc6fa292854f398c05a86bb55fdf8e62dfa35)) +* keep deprecated models out of the refresh, and correct the README model lists ([ce02f94](https://github.com/viztor/dsh-opencode-patch/commit/ce02f9462d32f8b24e15ad062674ebd2f5b239b5)) +* let the effect own the mount's withdrawal, not the mount ([762b069](https://github.com/viztor/dsh-opencode-patch/commit/762b0698aecca03c6b180e81a9aedd8d26546cdf)) +* localise the reset countdown, which was hardcoded English ([3ca7696](https://github.com/viztor/dsh-opencode-patch/commit/3ca7696c20d9fccaeee825a1e183a1c356a45b4f)) +* map GITHUB_TOKEN to GitHub Packages registry and skip republished versions ([8e5d18e](https://github.com/viztor/dsh-opencode-patch/commit/8e5d18edee55674d64a843c1ec59ef4778572cf6)) +* mount the usage contribution from the client ([2a11268](https://github.com/viztor/dsh-opencode-patch/commit/2a112684cdca8b4d8a3b399216693ea28fd8629e)) +* never hand the Host a null inject face ([0244c88](https://github.com/viztor/dsh-opencode-patch/commit/0244c885e0dc2dff0572559ca1e21b5f3c8cdf66)) +* never offer a model whose protocol has no route ([3c9cb6f](https://github.com/viztor/dsh-opencode-patch/commit/3c9cb6f2bd42e353dd08ce012cedb65ab53513c9)) +* no loading state, no ellipsis — empty is stable ([34fe9fa](https://github.com/viztor/dsh-opencode-patch/commit/34fe9fae168312f1f7ff99c97e33056c31d93667)) +* one weight for values, no second line under the Zen credit, one spelling of the model ([6d0c344](https://github.com/viztor/dsh-opencode-patch/commit/6d0c34405d984aef2166cf2969125e44782d0e60)) +* pass GHP auth as inline npm config flag ([31a5fd4](https://github.com/viztor/dsh-opencode-patch/commit/31a5fd417e433899e711326cdefda886f243abee)) +* **project:** split both separators, so a Windows cwd cannot leak a path ([22e313e](https://github.com/viztor/dsh-opencode-patch/commit/22e313e83519ddd5d7864a4e34e9457f7bf580cd)) +* publish safely, thin the wrapper's client half, and ship plugin metadata ([3f8b50d](https://github.com/viztor/dsh-opencode-patch/commit/3f8b50d7633651b64484d5f0597733f6aa9ae7c0)) +* read the Responses split from the vendor's SDK, not a model list ([a4b54b3](https://github.com/viztor/dsh-opencode-patch/commit/a4b54b382fa0ba8edbf9abc2e6ba3be43ef22d4e)) +* regenerate the catalog shim after models.dev moved, and re-pin the counts ([55c7f27](https://github.com/viztor/dsh-opencode-patch/commit/55c7f27371fc3045133e5d3dbe2672f8ebcbbb52)) +* regenerate the go-limits shim after the vendor renamed an id ([a0ebcb9](https://github.com/viztor/dsh-opencode-patch/commit/a0ebcb9bf65f2b540568379ddb42a262947afb03)) +* register client bundle under npm package name ([52bb141](https://github.com/viztor/dsh-opencode-patch/commit/52bb1419e0efd59f55b340968357c8f3480ebb6f)) +* register settings card on plugins.bundle.config keyed by package name ([1ee65d4](https://github.com/viztor/dsh-opencode-patch/commit/1ee65d4d1928863ff78f6b2e8062d73afb885c7b)) +* remove default export so cordis unwrapExports exposes Config ([ac6954c](https://github.com/viztor/dsh-opencode-patch/commit/ac6954c80eeee1410ba7e80cea9065bc246a0da9)) +* remove session mode option, always derive gateway IDs ([768563a](https://github.com/viztor/dsh-opencode-patch/commit/768563ac767a71f19db5f43c6739ca332e095ca5)) +* scope the spend reading to the conversation and route that asked for it ([6f8426e](https://github.com/viztor/dsh-opencode-patch/commit/6f8426e2021403a2fc4faa431013d4535d337a71)) +* session spend always reads two decimals ([bde266e](https://github.com/viztor/dsh-opencode-patch/commit/bde266e666f40af4ada45b3eff4745470072ebe5)) +* **session:** derive a ULID-shaped session id, not base62 ([535f7a0](https://github.com/viztor/dsh-opencode-patch/commit/535f7a036be87e27866dee54d75f5498a68cf927)) +* **session:** restore the vendor's id shape, with a real timestamp ([e38ad11](https://github.com/viztor/dsh-opencode-patch/commit/e38ad11e77fda2940029844ac43315b47663cb29)) +* **settings:** export volatile Config schema and decouple bundle slot registration ([7c2357e](https://github.com/viztor/dsh-opencode-patch/commit/7c2357ea7f942cb1c27fdcb2abb7ac30d50ca19e)) +* **settings:** the meter switch names what it controls ([98d7077](https://github.com/viztor/dsh-opencode-patch/commit/98d7077de69144899aca8a462ce03f792dc3a376)) +* ship only active catalog models with rates, and cover the new surface ([70400a0](https://github.com/viztor/dsh-opencode-patch/commit/70400a056dbe43e97d33d150f32265359217bfb1)) +* surface effective defaults in settings UI labels and hints ([ce3959f](https://github.com/viztor/dsh-opencode-patch/commit/ce3959f03ca14a7fb590ba44258b958c089a71cb)) +* take effect from the plugin context, not the injected scope ([fe7f5ff](https://github.com/viztor/dsh-opencode-patch/commit/fe7f5ff1e54e66d31d9107641806c4fdee683b6f)) +* take typert from the plugin context too ([0b1e3de](https://github.com/viztor/dsh-opencode-patch/commit/0b1e3de6f8cf542ecb847bcad3e81c8bd6f1bf8b)) +* the bundle ceiling is a tripwire, so stop trimming prose for it ([114f9fc](https://github.com/viztor/dsh-opencode-patch/commit/114f9fc3a601addb99f7ace2300712e0ebbc18d1)) +* the free-model row names the model, and stops repeating its own value ([62dfc7e](https://github.com/viztor/dsh-opencode-patch/commit/62dfc7eb2be48602ed33f50291191add9cdb4a33)) +* the Go meter threw away the one credential that worked ([9682967](https://github.com/viztor/dsh-opencode-patch/commit/9682967aef260326afcf6bae2729da7bd2acdf8a)) +* the Go quota window no longer leaks into the Zen route ([c03a8da](https://github.com/viztor/dsh-opencode-patch/commit/c03a8daaf3a8a92584f9432851a230d9e231594e)) +* the info tooltips portal out of their container, and the docs catch up ([3e0beaa](https://github.com/viztor/dsh-opencode-patch/commit/3e0beaa3af9b4e21b66933f9c1e427d34a349269)) +* the meter showed no tooltip and ran its three actions together ([d144eaa](https://github.com/viztor/dsh-opencode-patch/commit/d144eaa0d1510ca342501fd7573f5476ff810427)) +* the meter's Intl locale was never wired, and the billing note moves into a tooltip ([c58bb7a](https://github.com/viztor/dsh-opencode-patch/commit/c58bb7a5feca7563c03442fa5cb71d26cb147c65)) +* the meter's translator follows a live language switch ([cc9158a](https://github.com/viztor/dsh-opencode-patch/commit/cc9158a32dbe85b6d9ae01c23e9221091c68587c)) +* the panel header names the account, not its state ([607cfdc](https://github.com/viztor/dsh-opencode-patch/commit/607cfdcf9c03cc41638b531b0eeff1bbc50d071f)) +* the panel is translucent again, and one name for the bundle ([2b5dab2](https://github.com/viztor/dsh-opencode-patch/commit/2b5dab2f8f26b417a2fedf9a9a379594067f7ad6)) +* the panel names the model you picked, even with no price for it ([cc067f8](https://github.com/viztor/dsh-opencode-patch/commit/cc067f8305d1907f90011251654d06d1e0f4c7a2)) +* the panel no longer draws three invented 0% windows ([95f208b](https://github.com/viztor/dsh-opencode-patch/commit/95f208bc53561b3156b6f7ee9a306ac3ad2a3212)) +* the panel opts into the menu material instead of declaring its stroke ([1d00292](https://github.com/viztor/dsh-opencode-patch/commit/1d00292704419610d1d63933f5adc90f01c65e7c)) +* the panel's stroke is border-l2, and the elevation goes back ([831e4bd](https://github.com/viztor/dsh-opencode-patch/commit/831e4bd955c359407e307de39f8be8ca4d719bca)) +* the reset countdown floors, and composes with its own grammar ([6b2cfa5](https://github.com/viztor/dsh-opencode-patch/commit/6b2cfa5532648990aad444dfe28ed3ab6200b521)) +* the reset line is a sentence, so its word order is per-language ([4182c55](https://github.com/viztor/dsh-opencode-patch/commit/4182c5574ef5a00c61353b3974ac15f6e077d176)) +* the trigger hugs its content, with a thinner edge ([16261c0](https://github.com/viztor/dsh-opencode-patch/commit/16261c07cdd85fedda5858cada7d4416ff3bba5f)) +* the trigger sits closer to the model selector ([68b271d](https://github.com/viztor/dsh-opencode-patch/commit/68b271d82bfd3be6b233c4f2fb034b1c09662b70)) +* the trigger's radius steps one rung down, to the host's own ratio ([40815bd](https://github.com/viztor/dsh-opencode-patch/commit/40815bd14217de5aec654dd0072d667bb87ed7b2)) +* the usage note hides behind a tooltip, not a paragraph ([0aa9b1b](https://github.com/viztor/dsh-opencode-patch/commit/0aa9b1bbfd414f8d22beabb00288b55e967df040)) +* the window bar spans its row, and the state dot sits with its label ([17bdb74](https://github.com/viztor/dsh-opencode-patch/commit/17bdb74ca53ab6bbe96a0460e16f9523b5df9be1)) +* the Zen tooltip explains the spend instead of naming the account ([569e9b0](https://github.com/viztor/dsh-opencode-patch/commit/569e9b01df567228e36c4eddb623f3b51323d254)) +* wait for the usage namespace in the scoped inject, not the top-level one ([3c5e4c4](https://github.com/viztor/dsh-opencode-patch/commit/3c5e4c4824fbc3275d0c4ff8153d3bf97b82bb86)) +* write GHP auth to setup-node temp npmrc, not home npmrc ([9986789](https://github.com/viztor/dsh-opencode-patch/commit/9986789aa2dad18e737a0babda114d5f2b4d34ae)) + + +### Reverts + +* do not declare remote.opencodeGoUsage ([9d12b03](https://github.com/viztor/dsh-opencode-patch/commit/9d12b0392af621c53f1e118288301bc613bfeebf)) +* never declare remote.opencodeGoUsage as an inject key ([8bc1462](https://github.com/viztor/dsh-opencode-patch/commit/8bc14623ffdc82567abf0339228d3eaae9315ead)) +* radius and stroke back to the menu's own values ([2e626e1](https://github.com/viztor/dsh-opencode-patch/commit/2e626e12955a2e6ad1fe871913a659424f5b9510)) + ## [0.15.0](https://github.com/viztor/dsh-opencode-patch/compare/v0.14.0...v0.15.0) (2026-10-09) diff --git a/package.json b/package.json index c9fe0c3..84a3e9b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "dsh-opencode-patch", - "version": "0.15.3", + "version": "0.16.0", "description": "OpenCode on DeepSeek Harness — session affinity, Zen/Go gateway origin headers, free-tier tool fallback, and live Go quota display.", "keywords": [ "cordis",