From 4a81b6a377928ec97fa82d83a9fff595ba018c41 Mon Sep 17 00:00:00 2001 From: LIghtJUNction Date: Tue, 6 Oct 2026 20:38:25 +0800 Subject: [PATCH 1/4] ci: collect reproducible plugin compatibility inputs --- .github/workflows/plugin-compatibility.yml | 58 ++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 .github/workflows/plugin-compatibility.yml diff --git a/.github/workflows/plugin-compatibility.yml b/.github/workflows/plugin-compatibility.yml new file mode 100644 index 000000000..d3cf2a0dc --- /dev/null +++ b/.github/workflows/plugin-compatibility.yml @@ -0,0 +1,58 @@ +name: Plugin compatibility + +on: + push: + branches: [chore/plugin-compat-20261006] + paths: [.github/workflows/plugin-compatibility.yml] + +permissions: + contents: read + +jobs: + inspect: + runs-on: ubuntu-latest + timeout-minutes: 15 + steps: + - uses: actions/checkout@v4 + with: + submodules: recursive + persist-credentials: false + - uses: actions/setup-node@v4 + with: + node-version: '24' + - name: Record pinned and latest submodule revisions + shell: bash + run: | + set -euo pipefail + mkdir -p compatibility-inputs + git rev-parse HEAD > compatibility-inputs/parent-head.txt + git ls-tree HEAD packages/ apps/ > compatibility-inputs/parent-tree.txt + git submodule status --recursive > compatibility-inputs/pinned-submodules.txt + git submodule foreach --recursive 'git fetch --depth=1 origin HEAD && git checkout --detach FETCH_HEAD' + git submodule status --recursive > compatibility-inputs/latest-submodules.txt + git submodule foreach 'git log -1 --format="%H %cI %s"' > compatibility-inputs/latest-commits.txt + - name: Collect published host metadata and source packages + shell: bash + run: | + set -euo pipefail + mkdir -p compatibility-inputs/upstream + for package in @earendil-works/pi-ai @earendil-works/pi-coding-agent @deepseek-ai/dsh @deepseek-ai/dsh-llm @deepseek-ai/dsh-llm-pi-ai @deepseek-ai/dsh-credentials @deepseek-ai/dsh-authorization @deepseek-ai/dsh-client-connection @deepseek-ai/cordis @opencode-ai/plugin @opencode-ai/sdk opencode-ai; do + name="${package//@/}" + name="${name//\//-}" + npm view "$package" dist-tags version engines repository --json > "compatibility-inputs/upstream/$name.json" + npm pack "$package" --ignore-scripts --pack-destination compatibility-inputs/upstream + done + git clone --depth 1 https://github.com/Hmbown/Codewhale.git compatibility-inputs/upstream/Codewhale + git -C compatibility-inputs/upstream/Codewhale log -1 --format='%H %cI %s' > compatibility-inputs/upstream/codewhale-head.txt + - name: Package source snapshot without Git metadata + if: always() + shell: bash + run: | + tar --exclude=.git --exclude=node_modules -czf "$RUNNER_TEMP/plugin-compatibility-inputs.tar.gz" packages apps/coweft .gitmodules scripts .github compatibility-inputs + - uses: actions/upload-artifact@v4 + if: always() + with: + name: plugin-compatibility-inputs + path: ${{ runner.temp }}/plugin-compatibility-inputs.tar.gz + retention-days: 3 + if-no-files-found: error From 6b0b156e40370dc139cb8d6d4ba27a14cd82ea70 Mon Sep 17 00:00:00 2001 From: LIghtJUNction Date: Tue, 6 Oct 2026 20:59:50 +0800 Subject: [PATCH 2/4] ci: validate pinned plugin submodules with their real native hosts --- .github/workflows/plugin-compatibility.yml | 109 +++++++++++++-------- 1 file changed, 70 insertions(+), 39 deletions(-) diff --git a/.github/workflows/plugin-compatibility.yml b/.github/workflows/plugin-compatibility.yml index d3cf2a0dc..fcb39866d 100644 --- a/.github/workflows/plugin-compatibility.yml +++ b/.github/workflows/plugin-compatibility.yml @@ -1,17 +1,24 @@ name: Plugin compatibility - on: push: - branches: [chore/plugin-compat-20261006] - paths: [.github/workflows/plugin-compatibility.yml] - + branches: [main, chore/plugin-compat-20261006] + paths: ['packages/**', '.gitmodules', '.github/workflows/plugin-compatibility.yml'] + pull_request: + paths: ['packages/**', '.gitmodules', '.github/workflows/plugin-compatibility.yml'] + workflow_dispatch: permissions: contents: read - +concurrency: + group: plugin-compatibility-${{ github.ref }} + cancel-in-progress: true jobs: - inspect: + plugin: runs-on: ubuntu-latest - timeout-minutes: 15 + timeout-minutes: 20 + strategy: + fail-fast: false + matrix: + plugin: [pi-lmm-provider, dsh-lmm-provider, codewhale-lmm-provider, opencode-lmm-auth] steps: - uses: actions/checkout@v4 with: @@ -20,39 +27,63 @@ jobs: - uses: actions/setup-node@v4 with: node-version: '24' - - name: Record pinned and latest submodule revisions - shell: bash + - name: Validate the exact pinned plugin source + working-directory: packages/${{ matrix.plugin }} + env: + PLUGIN: ${{ matrix.plugin }} run: | set -euo pipefail - mkdir -p compatibility-inputs - git rev-parse HEAD > compatibility-inputs/parent-head.txt - git ls-tree HEAD packages/ apps/ > compatibility-inputs/parent-tree.txt - git submodule status --recursive > compatibility-inputs/pinned-submodules.txt - git submodule foreach --recursive 'git fetch --depth=1 origin HEAD && git checkout --detach FETCH_HEAD' - git submodule status --recursive > compatibility-inputs/latest-submodules.txt - git submodule foreach 'git log -1 --format="%H %cI %s"' > compatibility-inputs/latest-commits.txt - - name: Collect published host metadata and source packages - shell: bash + if test -f package-lock.json; then npm ci --ignore-scripts; fi + case "$PLUGIN" in + pi-lmm-provider) + npm run typecheck + npm test + npm run pack:check + npm run test:pi + ;; + dsh-lmm-provider) + npm install --global pnpm@latest + npm run typecheck + npm test + npm run pack:check + npm run test:host + ;; + codewhale-lmm-provider) + npm run check + npm test + npm run pack:check + if node -e 'process.exit(JSON.parse(require("node:fs").readFileSync("package.json")).scripts["test:host"] ? 0 : 1)'; then + npm install --prefix "$RUNNER_TEMP/codewhale-host" codewhale@latest + export LMM_CODEWHALE_BIN=$(HOST_ROOT="$RUNNER_TEMP/codewhale-host/node_modules/codewhale" node --input-type=commonjs -e 'console.log(require(process.env.HOST_ROOT + "/scripts/install.js").getBinaryPath("codewhale"))') + npm run test:host + fi + ;; + opencode-lmm-auth) + npm run build + git diff --exit-code -- dist + npm run typecheck + npm test + npm run pack:check + npm install --prefix "$RUNNER_TEMP/opencode-host" opencode-ai@1.18.34 + export OPENCODE_BIN="$RUNNER_TEMP/opencode-host/node_modules/opencode-ai/bin/opencode.exe" + npm run test:host + npm run test:integration + ;; + esac + installer: + runs-on: ubuntu-latest + timeout-minutes: 10 + steps: + - uses: actions/checkout@v4 + with: + submodules: recursive + persist-credentials: false + - uses: actions/setup-node@v4 + with: + node-version: '24' + - name: Check installer contracts + working-directory: packages/lmm-scripts run: | set -euo pipefail - mkdir -p compatibility-inputs/upstream - for package in @earendil-works/pi-ai @earendil-works/pi-coding-agent @deepseek-ai/dsh @deepseek-ai/dsh-llm @deepseek-ai/dsh-llm-pi-ai @deepseek-ai/dsh-credentials @deepseek-ai/dsh-authorization @deepseek-ai/dsh-client-connection @deepseek-ai/cordis @opencode-ai/plugin @opencode-ai/sdk opencode-ai; do - name="${package//@/}" - name="${name//\//-}" - npm view "$package" dist-tags version engines repository --json > "compatibility-inputs/upstream/$name.json" - npm pack "$package" --ignore-scripts --pack-destination compatibility-inputs/upstream - done - git clone --depth 1 https://github.com/Hmbown/Codewhale.git compatibility-inputs/upstream/Codewhale - git -C compatibility-inputs/upstream/Codewhale log -1 --format='%H %cI %s' > compatibility-inputs/upstream/codewhale-head.txt - - name: Package source snapshot without Git metadata - if: always() - shell: bash - run: | - tar --exclude=.git --exclude=node_modules -czf "$RUNNER_TEMP/plugin-compatibility-inputs.tar.gz" packages apps/coweft .gitmodules scripts .github compatibility-inputs - - uses: actions/upload-artifact@v4 - if: always() - with: - name: plugin-compatibility-inputs - path: ${{ runner.temp }}/plugin-compatibility-inputs.tar.gz - retention-days: 3 - if-no-files-found: error + for script in *.sh; do bash -n "$script"; done + node --test test-codewhale.mjs test-opencode.mjs test-opencode-entry.mjs From e586b1de900b094f40091f5db241349489a96fce Mon Sep 17 00:00:00 2001 From: LIghtJUNction Date: Tue, 6 Oct 2026 21:11:13 +0800 Subject: [PATCH 3/4] fix: update plugin submodule pins and validate current native hosts --- .github/workflows/plugin-compatibility.yml | 11 +++-- docs/plugin-compatibility-2026-10-06.md | 47 ++++++++++++++++++++++ packages/codewhale-lmm-provider | 2 +- packages/dsh-lmm-provider | 2 +- packages/lmm-scripts | 2 +- packages/pi-lmm-provider | 2 +- 6 files changed, 56 insertions(+), 10 deletions(-) create mode 100644 docs/plugin-compatibility-2026-10-06.md diff --git a/.github/workflows/plugin-compatibility.yml b/.github/workflows/plugin-compatibility.yml index fcb39866d..a1f5a4685 100644 --- a/.github/workflows/plugin-compatibility.yml +++ b/.github/workflows/plugin-compatibility.yml @@ -1,7 +1,7 @@ name: Plugin compatibility on: push: - branches: [main, chore/plugin-compat-20261006] + branches: [main] paths: ['packages/**', '.gitmodules', '.github/workflows/plugin-compatibility.yml'] pull_request: paths: ['packages/**', '.gitmodules', '.github/workflows/plugin-compatibility.yml'] @@ -52,11 +52,10 @@ jobs: npm run check npm test npm run pack:check - if node -e 'process.exit(JSON.parse(require("node:fs").readFileSync("package.json")).scripts["test:host"] ? 0 : 1)'; then - npm install --prefix "$RUNNER_TEMP/codewhale-host" codewhale@latest - export LMM_CODEWHALE_BIN=$(HOST_ROOT="$RUNNER_TEMP/codewhale-host/node_modules/codewhale" node --input-type=commonjs -e 'console.log(require(process.env.HOST_ROOT + "/scripts/install.js").getBinaryPath("codewhale"))') - npm run test:host - fi + npm install --prefix "$RUNNER_TEMP/codewhale-host" codewhale@0.10.0 + export LMM_CODEWHALE_BIN=$(HOST_ROOT="$RUNNER_TEMP/codewhale-host/node_modules/codewhale" node --input-type=commonjs -e 'require(process.env.HOST_ROOT + "/scripts/install.js").getBinaryPath("codewhale").then(p=>console.log(p)).catch(e=>{console.error(e);process.exitCode=1})') + test -x "$LMM_CODEWHALE_BIN" + npm run test:host ;; opencode-lmm-auth) npm run build diff --git a/docs/plugin-compatibility-2026-10-06.md b/docs/plugin-compatibility-2026-10-06.md new file mode 100644 index 000000000..17c440a7d --- /dev/null +++ b/docs/plugin-compatibility-2026-10-06.md @@ -0,0 +1,47 @@ +# Plugin compatibility update — 2026-10-06 + +## Scope and pinned sources + +This update changes plugin Git submodules and installer support, not the Go/Rust service or the unrelated `apps/coweft` application. All pins refer to committed source, not copied vendor directories. + +| Submodule | Provider version | Host target | Pinned revision | +| --- | --- | --- | --- | +| `packages/pi-lmm-provider` | `0.1.0-alpha.4` | Pi `1.0.4`, retaining older supported hosts | `e38af2a4e96500b29c473a9f6395911bf8a9cb55` | +| `packages/dsh-lmm-provider` | `0.1.0-alpha.6` | DSH `0.2.0-rc.2` and `0.2.1-alpha.1` | `5add9949fd7bbc8c2c9f6dead808f1ed0447791e` | +| `packages/codewhale-lmm-provider` | `0.1.0-alpha.2` | npm Codewhale `0.10.0`; reviewed `0.10.1` development source | `adad64b7ac77ec997b5be4662c6b6ccf36998357` | +| `packages/opencode-lmm-auth` | `0.1.0` (unchanged) | OpenCode `1.18.34` (already current) | `e589bbcc1703be5ae5de22473d5df42f16d38cfd` | +| `packages/lmm-scripts` | Git-pinned | Updated Codewhale provider and verified bootstrap launchers | `879e6bcaa566c45777c29c77e63fb5c9ad0ad620` | + +DSH's nested `vendor/pi-lmm-provider` references the same Pi commit as the parent project. Its own native `pi-ai` runtime stays on the DSH-supported `0.87` line; it is not replaced with the standalone Pi 1.0 SDK. + +## Compatibility fixes + +- Pi's development dependencies and lockfile use 1.0.4. The native loader test checks all four registered LMM commands, including `lmm-cache`. CI retains the 0.86.1, 0.87.1 and 0.99.2 baselines as well as 1.0.4/latest. +- DSH prereleases are explicitly admitted by npm semver. `scripts/select-host.mjs` resolves the CLI release tag once, then installs the matching service packages and official Cordis peer instead of mixing each library's independently published `latest` tag. Source and packed plugins are tested against the actual Web host. +- Codewhale's ambient `CODEWHALE_PROFILE` and `DEEPSEEK_PROFILE` cannot override the generated provider configuration. Forwarded `--profile` is rejected before credential access. Native `-p` and `-c` remain available. The parent process environment is not mutated. +- The Bash and PowerShell Codewhale bootstraps are bound to one immutable helper revision and the SHA-256 of the exact helper bytes. Integrity checks are not bypassed. +- OpenCode already targets 1.18.34; no speculative version bump is necessary. The parent CI revalidates its existing source, generated distribution and native host integration. + +## Validation and limits + +The Pi upgrade validation passed type checking, 118 tests, package inspection and the official 1.0.4 RPC loader. DSH upgrade validation passed both stable and alpha Web hosts, including local OAuth/RPC/catalog/streaming/sign-out fixtures and a packed alpha plugin. Codewhale passed 38 tests and official native config/catalog discovery against a local OAuth fixture. Installer validation passed Node/Python contract suites, Bash syntax, ShellCheck and PowerShell tests. + +The `Plugin compatibility` workflow separately checks the exact submodule pins in this parent project. Child PR workflows provide the wider host/OS matrices; their current check results, rather than this dated note, determine merge readiness. + +Native smoke tests do not establish production OAuth acceptance, TUI/Desktop GUI acceptance, billing accuracy or Windows credential ACL support. No production login, billable inference, package publication or deployment is part of this update. Codewhale remains a companion adapter rather than a native provider-hook plugin. Its development source version must not be confused with the npm stable release. + +## Related changes + +- https://github.com/TokenNotIncluded/pi-lmm-provider/pull/13 +- https://github.com/TokenNotIncluded/dsh-lmm-provider/pull/4 +- https://github.com/TokenNotIncluded/codewhale-lmm-provider/pull/1 +- https://github.com/TokenNotIncluded/lmm-scripts/pull/9 + +Review the child changes before merging the parent pin update. Source version bumps do not publish npm packages or GitHub release assets; existing release download links must not be changed to nonexistent assets. + +After updating a checkout to the accepted parent commit: + +```sh +git submodule sync --recursive +git submodule update --init --recursive +``` diff --git a/packages/codewhale-lmm-provider b/packages/codewhale-lmm-provider index 8c78be0f9..adad64b7a 160000 --- a/packages/codewhale-lmm-provider +++ b/packages/codewhale-lmm-provider @@ -1 +1 @@ -Subproject commit 8c78be0f936fb8f508badabc0195cdb21442a75d +Subproject commit adad64b7ac77ec997b5be4662c6b6ccf36998357 diff --git a/packages/dsh-lmm-provider b/packages/dsh-lmm-provider index 73ebec70e..5add9949f 160000 --- a/packages/dsh-lmm-provider +++ b/packages/dsh-lmm-provider @@ -1 +1 @@ -Subproject commit 73ebec70e404bcba598930658c9f6fa691778f2a +Subproject commit 5add9949fd7bbc8c2c9f6dead808f1ed0447791e diff --git a/packages/lmm-scripts b/packages/lmm-scripts index 9664730ac..879e6bcaa 160000 --- a/packages/lmm-scripts +++ b/packages/lmm-scripts @@ -1 +1 @@ -Subproject commit 9664730acfeb10812906f7727b6d88432e36d6e8 +Subproject commit 879e6bcaa566c45777c29c77e63fb5c9ad0ad620 diff --git a/packages/pi-lmm-provider b/packages/pi-lmm-provider index 927b14041..e38af2a4e 160000 --- a/packages/pi-lmm-provider +++ b/packages/pi-lmm-provider @@ -1 +1 @@ -Subproject commit 927b1404129e8cbf859bb15ef55c1d358136da0c +Subproject commit e38af2a4e96500b29c473a9f6395911bf8a9cb55 From 16dbb1e6204b8d13af44f9c6d6ad5b4f52341c2f Mon Sep 17 00:00:00 2001 From: LIghtJUNction Date: Tue, 6 Oct 2026 21:20:19 +0800 Subject: [PATCH 4/4] fix: pin the verified DSH peer fix and test installed tarballs --- .github/workflows/plugin-compatibility.yml | 2 ++ docs/plugin-compatibility-2026-10-06.md | 23 +++++++++++----------- packages/dsh-lmm-provider | 2 +- 3 files changed, 15 insertions(+), 12 deletions(-) diff --git a/.github/workflows/plugin-compatibility.yml b/.github/workflows/plugin-compatibility.yml index a1f5a4685..266a17946 100644 --- a/.github/workflows/plugin-compatibility.yml +++ b/.github/workflows/plugin-compatibility.yml @@ -47,6 +47,8 @@ jobs: npm test npm run pack:check npm run test:host + archive=$(npm pack --ignore-scripts --json | node -e 'let s="";process.stdin.on("data",d=>s+=d);process.stdin.on("end",()=>console.log(JSON.parse(s)[0].filename))') + LMM_DSH_PLUGIN="$PWD/$archive" npm run test:host ;; codewhale-lmm-provider) npm run check diff --git a/docs/plugin-compatibility-2026-10-06.md b/docs/plugin-compatibility-2026-10-06.md index 17c440a7d..00bfe4bd8 100644 --- a/docs/plugin-compatibility-2026-10-06.md +++ b/docs/plugin-compatibility-2026-10-06.md @@ -7,28 +7,29 @@ This update changes plugin Git submodules and installer support, not the Go/Rust | Submodule | Provider version | Host target | Pinned revision | | --- | --- | --- | --- | | `packages/pi-lmm-provider` | `0.1.0-alpha.4` | Pi `1.0.4`, retaining older supported hosts | `e38af2a4e96500b29c473a9f6395911bf8a9cb55` | -| `packages/dsh-lmm-provider` | `0.1.0-alpha.6` | DSH `0.2.0-rc.2` and `0.2.1-alpha.1` | `5add9949fd7bbc8c2c9f6dead808f1ed0447791e` | +| `packages/dsh-lmm-provider` | `0.1.0-alpha.6` | DSH `0.2.0-rc.2` and `0.2.1-alpha.1` | `da11a41b8c05fc065d0acecf22e34c7af1d29f65` | | `packages/codewhale-lmm-provider` | `0.1.0-alpha.2` | npm Codewhale `0.10.0`; reviewed `0.10.1` development source | `adad64b7ac77ec997b5be4662c6b6ccf36998357` | | `packages/opencode-lmm-auth` | `0.1.0` (unchanged) | OpenCode `1.18.34` (already current) | `e589bbcc1703be5ae5de22473d5df42f16d38cfd` | | `packages/lmm-scripts` | Git-pinned | Updated Codewhale provider and verified bootstrap launchers | `879e6bcaa566c45777c29c77e63fb5c9ad0ad620` | -DSH's nested `vendor/pi-lmm-provider` references the same Pi commit as the parent project. Its own native `pi-ai` runtime stays on the DSH-supported `0.87` line; it is not replaced with the standalone Pi 1.0 SDK. +DSH's nested `vendor/pi-lmm-provider` references the same Pi commit as the parent project. Its native `pi-ai` runtime stays on the DSH-supported `0.87` line; it is not replaced with the standalone Pi 1.0 SDK. ## Compatibility fixes -- Pi's development dependencies and lockfile use 1.0.4. The native loader test checks all four registered LMM commands, including `lmm-cache`. CI retains the 0.86.1, 0.87.1 and 0.99.2 baselines as well as 1.0.4/latest. -- DSH prereleases are explicitly admitted by npm semver. `scripts/select-host.mjs` resolves the CLI release tag once, then installs the matching service packages and official Cordis peer instead of mixing each library's independently published `latest` tag. Source and packed plugins are tested against the actual Web host. -- Codewhale's ambient `CODEWHALE_PROFILE` and `DEEPSEEK_PROFILE` cannot override the generated provider configuration. Forwarded `--profile` is rejected before credential access. Native `-p` and `-c` remain available. The parent process environment is not mutated. -- The Bash and PowerShell Codewhale bootstraps are bound to one immutable helper revision and the SHA-256 of the exact helper bytes. Integrity checks are not bypassed. -- OpenCode already targets 1.18.34; no speculative version bump is necessary. The parent CI revalidates its existing source, generated distribution and native host integration. +- Pi's development dependencies and lockfile use 1.0.4. Its native loader checks all four LMM commands, including `lmm-cache`. CI retains 0.86.1, 0.87.1 and 0.99.2 alongside 1.0.4/latest. +- DSH prereleases are explicitly admitted by npm semver. `scripts/select-host.mjs` resolves the CLI release tag once and selects matching service packages and the official Cordis peer. +- DSH authorization, home paths and pi-ai adapter packages are host-owned peers, not independently installed runtime dependencies. A packaged-plugin regression exposed alpha services shadowing stable services: DSH correctly disabled the incompatible services and the LMM auth route returned 404. The dependency declarations and lockfile are fixed; a regression test prevents reintroducing host-owned runtime dependencies. No compatibility exemption is granted. +- Codewhale's ambient `CODEWHALE_PROFILE` and `DEEPSEEK_PROFILE` cannot override the generated provider configuration. Forwarded `--profile` is rejected before credential access; native `-p` and `-c` remain available. The parent process environment is unchanged. +- Bash and PowerShell Codewhale bootstraps use the same immutable helper revision and the SHA-256 of its exact bytes. Integrity checks are not bypassed. +- OpenCode already targets 1.18.34. Its source, generated distribution and native host integration are revalidated without a speculative version bump. ## Validation and limits -The Pi upgrade validation passed type checking, 118 tests, package inspection and the official 1.0.4 RPC loader. DSH upgrade validation passed both stable and alpha Web hosts, including local OAuth/RPC/catalog/streaming/sign-out fixtures and a packed alpha plugin. Codewhale passed 38 tests and official native config/catalog discovery against a local OAuth fixture. Installer validation passed Node/Python contract suites, Bash syntax, ShellCheck and PowerShell tests. +Pi passed 118 tests, type checking, package inspection and the official 1.0.4 RPC loader; its full legacy/latest matrix also passed. DSH passed 14 unit tests and actual stable/alpha Web hosts, including source and packed-plugin installs, local OAuth/RPC/catalog/streaming/sign-out fixtures. Codewhale passed 38 tests and official native config/catalog discovery against a local OAuth fixture. Installer validation includes Node/Python contracts, Bash syntax, ShellCheck and PowerShell; the Codewhale/OpenCode cross-platform installer workflows also passed. -The `Plugin compatibility` workflow separately checks the exact submodule pins in this parent project. Child PR workflows provide the wider host/OS matrices; their current check results, rather than this dated note, determine merge readiness. +The read-only `Plugin compatibility` workflow validates the exact parent Git pins, including the DSH tarball rather than source loading alone. Current child and parent CI results, not this dated note, determine merge readiness. -Native smoke tests do not establish production OAuth acceptance, TUI/Desktop GUI acceptance, billing accuracy or Windows credential ACL support. No production login, billable inference, package publication or deployment is part of this update. Codewhale remains a companion adapter rather than a native provider-hook plugin. Its development source version must not be confused with the npm stable release. +These checks do not establish production OAuth acceptance, TUI/Desktop GUI acceptance, billing accuracy or Windows credential ACL support. No production login, billable inference, package publication or deployment is part of this update. Codewhale remains a companion adapter rather than a native provider-hook plugin; its development source version is not the npm stable release. ## Related changes @@ -37,7 +38,7 @@ Native smoke tests do not establish production OAuth acceptance, TUI/Desktop GUI - https://github.com/TokenNotIncluded/codewhale-lmm-provider/pull/1 - https://github.com/TokenNotIncluded/lmm-scripts/pull/9 -Review the child changes before merging the parent pin update. Source version bumps do not publish npm packages or GitHub release assets; existing release download links must not be changed to nonexistent assets. +Review the child changes before merging the parent pin update. Source version bumps do not publish npm packages or GitHub release assets. Existing release download links must not point to nonexistent assets. After updating a checkout to the accepted parent commit: diff --git a/packages/dsh-lmm-provider b/packages/dsh-lmm-provider index 5add9949f..da11a41b8 160000 --- a/packages/dsh-lmm-provider +++ b/packages/dsh-lmm-provider @@ -1 +1 @@ -Subproject commit 5add9949fd7bbc8c2c9f6dead808f1ed0447791e +Subproject commit da11a41b8c05fc065d0acecf22e34c7af1d29f65