Peter Steinberger
cd2f70c7ab
fix(ci): pin DeepSeek live gateway models ( #103321 )
2026-07-10 04:43:16 +01:00
Peter Steinberger
a24139e199
ci: require enabled Telegram package proof ( #103310 )
2026-07-10 04:24:36 +01:00
Vincent Koc
f8527e77bc
fix(ci): pin Kova timeout signal contract ( #103264 )
2026-07-09 19:28:44 -07:00
Peter Steinberger
73db6b2aca
ci: pin docs i18n Go toolchain ( #103244 )
2026-07-10 03:02:52 +01:00
Peter Steinberger
25eaa53a8a
fix(ci): verify performance report after push timeout ( #103237 )
2026-07-10 02:50:36 +01:00
Vincent Koc
cbc087dcc5
fix(ci): pin Kova resource scope contract ( #103217 )
2026-07-09 18:40:25 -07:00
Peter Steinberger
31f76b9792
fix(release): validate GitHub notes before publish ( #103222 )
2026-07-10 02:33:23 +01:00
Vincent Koc
968b89defe
fix(ci): remove cross-os TypeScript loader bootstrap ( #103195 )
2026-07-09 18:15:12 -07:00
Peter Steinberger
d8624a4e1b
fix: fail release performance when reports do not publish ( #103126 )
...
* fix(ci): harden performance report publishing
* ci: use scoped app token for reports
* ci: pin Kova readiness probe fix
* ci: pin latest Kova readiness checks
* ci: pin Kova startup sequencing fix
* ci: pin calibrated Kova release policy
2026-07-10 01:27:26 +01:00
Peter Steinberger
dc3d06c5d6
fix(ci): calibrate hosted startup memory
2026-07-09 19:54:42 -04:00
Vincent Koc
db71e497be
fix(ci): restore live OpenAI performance evidence ( #103151 )
2026-07-09 16:29:22 -07:00
Peter Steinberger
b8537cd81e
ci: pin corrected Kova release evaluator ( #103110 )
...
* ci: pin corrected Kova release evaluator
* ci: include gateway plugin calibration
2026-07-09 22:43:44 +01:00
Peter Steinberger
129e2795ae
fix: stabilize SwiftFormat 0.62 lint ( #103098 )
2026-07-09 21:48:14 +01:00
Peter Steinberger
71f7fef7a2
fix(ci): isolate OpenWebUI release smoke ( #103095 )
...
* fix(ci): isolate OpenWebUI release smoke
* docs: format release validation table
2026-07-09 21:38:33 +01:00
Peter Steinberger
7d5eba3106
fix(ci): restore Kova managed-service scenarios ( #103085 )
2026-07-09 20:56:26 +01:00
Vincent Koc
ee9d9ea6db
fix(ci): verify live provider traffic in performance runs ( #103073 )
...
* fix(diagnostics): emit provider request timeline events
* fix(ci): verify Kova live provider evidence
2026-07-09 12:39:41 -07:00
Peter Steinberger
11fa0cf2d5
fix(ci): honor Kova performance report contracts ( #103030 )
2026-07-09 20:08:25 +01:00
Peter Steinberger
372b527da4
fix(ci): back off OCM asset retries ( #102996 )
2026-07-09 17:38:47 +01:00
Vincent Koc
d18e48c928
fix(ci): ignore profiling-only resource gate failures ( #102894 )
2026-07-09 09:22:11 -07:00
Peter Steinberger
aca96d2dcf
ci: retry transient release workflow reads ( #102896 )
2026-07-09 15:34:02 +01:00
Peter Steinberger
11dda0e5fd
ci: make release child dispatch idempotent ( #102858 )
2026-07-09 15:03:46 +01:00
Vincent Koc
0535679083
fix(release): validate exact prepared npm package sets ( #102759 )
...
* fix(release): validate prepared npm package sets
Forward-port the beta3 package-set preflight, Telegram, and Parallels validation to main while preserving main's existing Bun install smoke. Recompute decoded proxy response lengths and require artifact tarballs to exactly match the verified manifest.
* fix(release): lock fixture registry proxy origin
2026-07-09 05:19:24 -07:00
Vincent Koc
240ca9dbd7
fix(ci): preserve all package runtime artifacts
2026-07-08 23:12:03 -07:00
Vincent Koc
a780541ea6
fix(ci): preserve AI runtime build artifacts
2026-07-08 22:58:35 -07:00
Vincent Koc
b63317d07e
fix(ci): install workspace packages for Kova
2026-07-08 14:22:22 -07:00
Vincent Koc
0d86f64e60
fix(ci): stabilize Go and TUI PTY shards
2026-07-08 10:28:06 -07:00
Dallin Romney
f093c0f2e3
ci: temporarily disable QA smoke again ( #102256 )
2026-07-08 11:21:38 -06:00
Kevin Lin
9eeebf7cb1
feat(release): preflight all extended-stable npm packages ( #101757 )
...
* feat(release): preflight all extended-stable npm packages
* fix(release): install packed ai runtime in smoke
* fix(release): install sibling tarballs before core
* fix(release): verify unpublished tarballs locally
* fix(release): declare local preflight dependencies
* fix(release): pack workspace dependencies for smoke
* fix(release): accept pnpm pack artifact path
* fix(release): seed ai in sdk smoke
* fix(release): preserve prepublish verifier compatibility
2026-07-08 08:01:00 -07:00
Kevin Lin
72ca911e3c
fix(release): allow SHA-only extended-stable preflight ( #101466 )
2026-07-07 07:45:55 -07:00
brokemac79
037412ec7d
ci(mantis): add web UI chat proof lane ( #100472 )
...
* ci(mantis): add web ui chat proof lane
* ci(mantis): tighten web ui proof candidate parsing
* ci: tighten Mantis Web UI proof lane
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-07 10:54:35 +01:00
Peter Steinberger
cb9de7d361
chore(android): update dependencies and compile with API 37 ( #101356 )
...
* build(deps): bump the android-deps group across 1 directory with 14 updates
Bumps the android-deps group with 14 updates in the /apps/android directory:
| Package | From | To |
| --- | --- | --- |
| [gradle-wrapper](https://github.com/gradle/gradle ) | `9.5.1` | `9.6.1` |
| androidx.compose:compose-bom | `2026.05.01` | `2026.06.01` |
| androidx.core:core-ktx | `1.18.0` | `1.19.0` |
| androidx.lifecycle:lifecycle-runtime-ktx | `2.10.0` | `2.11.0` |
| [org.commonmark:commonmark](https://github.com/commonmark/commonmark-java ) | `0.28.0` | `0.29.0` |
| [org.commonmark:commonmark-ext-autolink](https://github.com/commonmark/commonmark-java ) | `0.28.0` | `0.29.0` |
| [org.commonmark:commonmark-ext-gfm-strikethrough](https://github.com/commonmark/commonmark-java ) | `0.28.0` | `0.29.0` |
| [org.commonmark:commonmark-ext-gfm-tables](https://github.com/commonmark/commonmark-java ) | `0.28.0` | `0.29.0` |
| [org.commonmark:commonmark-ext-task-list-items](https://github.com/commonmark/commonmark-java ) | `0.28.0` | `0.29.0` |
| [org.junit.vintage:junit-vintage-engine](https://github.com/junit-team/junit-framework ) | `6.1.0` | `6.1.1` |
| [io.kotest:kotest-assertions-core-jvm](https://github.com/kotest/kotest ) | `6.1.11` | `6.2.1` |
| [io.kotest:kotest-runner-junit5-jvm](https://github.com/kotest/kotest ) | `6.1.11` | `6.2.1` |
| [com.squareup.okhttp3:mockwebserver](https://github.com/square/okhttp ) | `5.3.2` | `5.4.0` |
| [com.squareup.okhttp3:okhttp](https://github.com/square/okhttp ) | `5.3.2` | `5.4.0` |
Updates `gradle-wrapper` from 9.5.1 to 9.6.1
- [Release notes](https://github.com/gradle/gradle/releases )
- [Commits](https://github.com/gradle/gradle/compare/v9.5.1...v9.6.1 )
Updates `androidx.compose:compose-bom` from 2026.05.01 to 2026.06.01
Updates `androidx.core:core-ktx` from 1.18.0 to 1.19.0
Updates `androidx.lifecycle:lifecycle-runtime-ktx` from 2.10.0 to 2.11.0
Updates `org.commonmark:commonmark` from 0.28.0 to 0.29.0
- [Release notes](https://github.com/commonmark/commonmark-java/releases )
- [Changelog](https://github.com/commonmark/commonmark-java/blob/main/CHANGELOG.md )
- [Commits](https://github.com/commonmark/commonmark-java/compare/commonmark-parent-0.28.0...commonmark-parent-0.29.0 )
Updates `org.commonmark:commonmark-ext-autolink` from 0.28.0 to 0.29.0
- [Release notes](https://github.com/commonmark/commonmark-java/releases )
- [Changelog](https://github.com/commonmark/commonmark-java/blob/main/CHANGELOG.md )
- [Commits](https://github.com/commonmark/commonmark-java/compare/commonmark-parent-0.28.0...commonmark-parent-0.29.0 )
Updates `org.commonmark:commonmark-ext-gfm-strikethrough` from 0.28.0 to 0.29.0
- [Release notes](https://github.com/commonmark/commonmark-java/releases )
- [Changelog](https://github.com/commonmark/commonmark-java/blob/main/CHANGELOG.md )
- [Commits](https://github.com/commonmark/commonmark-java/compare/commonmark-parent-0.28.0...commonmark-parent-0.29.0 )
Updates `org.commonmark:commonmark-ext-gfm-tables` from 0.28.0 to 0.29.0
- [Release notes](https://github.com/commonmark/commonmark-java/releases )
- [Changelog](https://github.com/commonmark/commonmark-java/blob/main/CHANGELOG.md )
- [Commits](https://github.com/commonmark/commonmark-java/compare/commonmark-parent-0.28.0...commonmark-parent-0.29.0 )
Updates `org.commonmark:commonmark-ext-task-list-items` from 0.28.0 to 0.29.0
- [Release notes](https://github.com/commonmark/commonmark-java/releases )
- [Changelog](https://github.com/commonmark/commonmark-java/blob/main/CHANGELOG.md )
- [Commits](https://github.com/commonmark/commonmark-java/compare/commonmark-parent-0.28.0...commonmark-parent-0.29.0 )
Updates `org.commonmark:commonmark-ext-autolink` from 0.28.0 to 0.29.0
- [Release notes](https://github.com/commonmark/commonmark-java/releases )
- [Changelog](https://github.com/commonmark/commonmark-java/blob/main/CHANGELOG.md )
- [Commits](https://github.com/commonmark/commonmark-java/compare/commonmark-parent-0.28.0...commonmark-parent-0.29.0 )
Updates `org.commonmark:commonmark-ext-gfm-strikethrough` from 0.28.0 to 0.29.0
- [Release notes](https://github.com/commonmark/commonmark-java/releases )
- [Changelog](https://github.com/commonmark/commonmark-java/blob/main/CHANGELOG.md )
- [Commits](https://github.com/commonmark/commonmark-java/compare/commonmark-parent-0.28.0...commonmark-parent-0.29.0 )
Updates `org.commonmark:commonmark-ext-gfm-tables` from 0.28.0 to 0.29.0
- [Release notes](https://github.com/commonmark/commonmark-java/releases )
- [Changelog](https://github.com/commonmark/commonmark-java/blob/main/CHANGELOG.md )
- [Commits](https://github.com/commonmark/commonmark-java/compare/commonmark-parent-0.28.0...commonmark-parent-0.29.0 )
Updates `org.commonmark:commonmark-ext-task-list-items` from 0.28.0 to 0.29.0
- [Release notes](https://github.com/commonmark/commonmark-java/releases )
- [Changelog](https://github.com/commonmark/commonmark-java/blob/main/CHANGELOG.md )
- [Commits](https://github.com/commonmark/commonmark-java/compare/commonmark-parent-0.28.0...commonmark-parent-0.29.0 )
Updates `org.junit.vintage:junit-vintage-engine` from 6.1.0 to 6.1.1
- [Release notes](https://github.com/junit-team/junit-framework/releases )
- [Commits](https://github.com/junit-team/junit-framework/compare/r6.1.0...r6.1.1 )
Updates `io.kotest:kotest-assertions-core-jvm` from 6.1.11 to 6.2.1
- [Release notes](https://github.com/kotest/kotest/releases )
- [Commits](https://github.com/kotest/kotest/compare/6.1.11...6.2.1 )
Updates `io.kotest:kotest-runner-junit5-jvm` from 6.1.11 to 6.2.1
- [Release notes](https://github.com/kotest/kotest/releases )
- [Commits](https://github.com/kotest/kotest/compare/6.1.11...6.2.1 )
Updates `io.kotest:kotest-runner-junit5-jvm` from 6.1.11 to 6.2.1
- [Release notes](https://github.com/kotest/kotest/releases )
- [Commits](https://github.com/kotest/kotest/compare/6.1.11...6.2.1 )
Updates `com.squareup.okhttp3:mockwebserver` from 5.3.2 to 5.4.0
- [Changelog](https://github.com/square/okhttp/blob/master/CHANGELOG.md )
- [Commits](https://github.com/square/okhttp/compare/parent-5.3.2...parent-5.4.0 )
Updates `com.squareup.okhttp3:okhttp` from 5.3.2 to 5.4.0
- [Changelog](https://github.com/square/okhttp/blob/master/CHANGELOG.md )
- [Commits](https://github.com/square/okhttp/compare/parent-5.3.2...parent-5.4.0 )
Updates `com.squareup.okhttp3:okhttp` from 5.3.2 to 5.4.0
- [Changelog](https://github.com/square/okhttp/blob/master/CHANGELOG.md )
- [Commits](https://github.com/square/okhttp/compare/parent-5.3.2...parent-5.4.0 )
---
updated-dependencies:
- dependency-name: androidx.compose:compose-bom
dependency-version: 2026.06.01
dependency-type: direct:production
dependency-group: android-deps
- dependency-name: androidx.core:core-ktx
dependency-version: 1.19.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: android-deps
- dependency-name: androidx.lifecycle:lifecycle-runtime-ktx
dependency-version: 2.11.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: android-deps
- dependency-name: com.squareup.okhttp3:mockwebserver
dependency-version: 5.4.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: android-deps
- dependency-name: com.squareup.okhttp3:okhttp
dependency-version: 5.4.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: android-deps
- dependency-name: com.squareup.okhttp3:okhttp
dependency-version: 5.4.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: android-deps
- dependency-name: gradle-wrapper
dependency-version: 9.6.1
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: android-deps
- dependency-name: io.kotest:kotest-assertions-core-jvm
dependency-version: 6.2.1
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: android-deps
- dependency-name: io.kotest:kotest-runner-junit5-jvm
dependency-version: 6.2.1
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: android-deps
- dependency-name: io.kotest:kotest-runner-junit5-jvm
dependency-version: 6.2.1
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: android-deps
- dependency-name: org.commonmark:commonmark
dependency-version: 0.29.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: android-deps
- dependency-name: org.commonmark:commonmark-ext-autolink
dependency-version: 0.29.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: android-deps
- dependency-name: org.commonmark:commonmark-ext-autolink
dependency-version: 0.29.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: android-deps
- dependency-name: org.commonmark:commonmark-ext-gfm-strikethrough
dependency-version: 0.29.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: android-deps
- dependency-name: org.commonmark:commonmark-ext-gfm-strikethrough
dependency-version: 0.29.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: android-deps
- dependency-name: org.commonmark:commonmark-ext-gfm-tables
dependency-version: 0.29.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: android-deps
- dependency-name: org.commonmark:commonmark-ext-gfm-tables
dependency-version: 0.29.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: android-deps
- dependency-name: org.commonmark:commonmark-ext-task-list-items
dependency-version: 0.29.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: android-deps
- dependency-name: org.commonmark:commonmark-ext-task-list-items
dependency-version: 0.29.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: android-deps
- dependency-name: org.junit.vintage:junit-vintage-engine
dependency-version: 6.1.1
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: android-deps
...
Signed-off-by: dependabot[bot] <support@github.com >
* build(android): compile dependencies against API 37
* chore(android): refresh native i18n inventory
---------
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-07 08:00:55 +01:00
Vincent Koc
f643c9b2f8
perf(ci): raise Node shard parallelism to 28 ( #101174 )
2026-07-06 21:59:22 -07:00
Peter Steinberger
b337164916
ci: fail Android PRs on ktlint formatting drift ( #101275 )
...
* style(android): fix ktlint drift in ShellScreen.kt
Formatting drift landed via #101161 ; :app:ktlintCheck fails on main
without this. Generated with ./gradlew :app:ktlintFormat.
* ci(android): add ktlint lane to the Android CI job
Android formatting drift kept landing on main because CI never ran
ktlintCheck (see the #100304 manual sweep). Adds an android-ktlint
matrix lane mirroring pnpm android:lint.
* chore(i18n): sync native inventory after ShellScreen.kt format
The ktlint format fix shifted line numbers tracked in
apps/.i18n/native-source.json; regenerated via pnpm native:i18n:sync.
* style(android): fix new ktlint drift in NodeRuntime and ChatHardwareKeyTest
Import-order/blank-line drift landed via the hardware-Enter changes
(#101321 and follow-up) while this PR was open — the exact recurrence
the new android-ktlint lane prevents. Generated with ktlintFormat;
native i18n inventory resynced for the shifted line numbers.
2026-07-07 05:01:26 +01:00
Peter Steinberger
aed2482292
fix(qa): restore automatic smoke coverage across channels ( #101186 )
...
* fix(qa): restore channel-sharded smoke coverage
Co-authored-by: Peter Steinberger <steipete@gmail.com >
Co-authored-by: Dallin Romney <dallinromney@gmail.com >
* fix(qa): restore channel-sharded smoke coverage
* fix(qa): restore channel-sharded smoke coverage
* fix(qa): restore channel-sharded smoke coverage
---------
Co-authored-by: Vincent Koc <25068+vincentkoc@users.noreply.github.com >
Co-authored-by: Dallin Romney <dallinromney@gmail.com >
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
2026-07-06 17:09:40 -07:00
Peter Steinberger
054e3675e1
feat(android): publish signed APKs with stable releases ( #101212 )
...
* feat(android): publish signed release APKs
* fix(android): preserve fallback corrections
* test(android): isolate APK signer fixtures
* docs: refresh generated docs map
2026-07-07 00:39:59 +01:00
Peter Steinberger
2424fdf8e5
ci: keep native landing validation off queued Blacksmith capacity ( #101196 )
...
* ci: route native i18n release gates to hosted runners
* ci: keep Testbox PR validation on hosted runners
* fix(ci): gate Testbox lifecycle to real leases
2026-07-06 23:14:27 +01:00
Dallin Romney
6bffda4166
ci: temporarily disable QA smoke ( #101185 )
2026-07-06 13:38:33 -07:00
Vincent Koc
cbf9acff37
fix(release): reuse setup-token for Anthropic live checks
2026-07-06 03:46:22 -07:00
Vincent Koc
fa70403403
fix(release): isolate Claude ACP subscription auth
2026-07-06 02:58:59 -07:00
Vincent Koc
65131633a1
fix(ci): tolerate periphery comment permission denials
2026-07-06 11:18:58 +02:00
Vincent Koc
7b6b39e0f8
fix(ci): keep full Anthropic Docker proof advisory
2026-07-05 23:01:01 -07:00
Kevin Lin
9d2d517296
feat: publish plugins with extended-stable releases ( #100448 )
...
* feat(release): publish plugins on extended-stable
* feat(plugins): align extended-stable with core
* docs: explain extended-stable plugin alignment
* fix(release): make plugin convergence recoverable
* fix(plugins): preserve extended-stable fallback intent
* fix(release): keep plugin tag mutation credential-isolated
2026-07-05 16:16:26 -07:00
Kevin Lin
5fdaa04eca
feat(qa-lab): add Codex Slack approval scenarios ( #91519 )
...
* feat(qa-lab): add codex slack approval scenarios
* fix(qa-lab): harden Codex Slack approval proof
* fix(qa-lab): validate Codex approval model
* test(qa-lab): verify approved Codex operation
* fix(qa-lab): normalize Slack QA account routing
* fix(qa-lab): read Codex tool result transcripts
* fix(qa-lab): harden Codex approval cleanup
* fix(qa-lab): support Codex Mantis checkpoints
* fix(qa-lab): repair Mantis pnpm bootstrap
* fix(qa-lab): normalize Codex tool result text
* fix(qa-lab): scope Mantis pnpm fallback
* fix(qa-lab): bootstrap pinned pnpm without npm
* fix(qa-lab): terminate pnpm metadata record
* fix(qa-lab): bootstrap official node for mantis
* fix(qa-lab): make mantis pnpm shim executable
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-05 22:47:18 +01:00
Vincent Koc
7dac5c2778
fix(ci): install release packaging dependencies ( #100459 )
2026-07-05 14:33:10 -07:00
Peter Steinberger
e62cf76bd5
fix(ci): catch native-only mobile protocol drift ( #100278 )
...
* fix(ci): cover native-only protocol event drift
* fix(ci): ignore quoted Swift event constants
2026-07-05 09:23:45 -07:00
Peter Steinberger
601b80c5f4
ci: pin website checkout branch
2026-07-05 08:37:59 -04:00
Peter Steinberger
4a2629ebe3
ci: pin ClawHub docs checkout branch
2026-07-05 08:17:32 -04:00
Peter Steinberger
5af24d16bf
chore(ci): fail CI when gateway events go unhandled by the mobile apps ( #100206 )
...
* ci: guard gateway protocol event coverage for iOS/Android clients (#100198 )
Adds scripts/check-protocol-event-coverage.mjs, which derives the
server->client event catalog from GATEWAY_EVENTS in
src/gateway/server-methods-list.ts, extracts the events each mobile app
handles from Swift/Kotlin dispatch sites, and fails on gateway events no
client handles unless allowlisted with a reason in
scripts/protocol-event-coverage.allowlist.json. Wired as
pnpm check:protocol-coverage in the CI guards shard.
* fix(ci): scope Kotlin event extraction to handle*Event dispatch functions (#100198 )
Bare event == "..." literals in predicate helpers outside the dispatch
path (gatewayEventInvalidatesNodesDevices in NodeRuntime.kt, which has no
production caller) counted as Android coverage, silently masking that
node.pair.requested/resolved have no live handler. Kotlin extraction now
only reads when(event) labels and event comparisons inside fun
handle*Event(...) bodies; node.pair.* moved to the Android allowlist with
a truthful reason. Swift extraction stays tree-wide because consumption
there always reads .event off a received EventFrame.
* fix(android): remove dead node pairing event helper
* fix(ci): preserve protocol allowlist parse errors
* test(ci): align tooling import plan
2026-07-05 03:06:52 -07:00
Vincent Koc
53bd4dde6c
fix(ci): stabilize manual dispatch checkout
2026-07-05 10:22:26 +02:00
Peter Steinberger
062f88e3e3
refactor: extract reusable AI runtime package ( #99059 )
...
* refactor: extract reusable AI runtime package
* refactor: complete AI provider relocation
* refactor: keep llm core internal
* refactor(ai): make @openclaw/ai self-contained with host policy ports
Move pure transport helpers (tool projections, strict-schema normalization,
prompt-cache boundary, stream guards, anthropic/openai compat, request
activity) from src into packages/ai; move utf16-slice into
normalization-core. Inject host policy (guarded fetch, redaction,
strict-tool defaults, diagnostics logging) through AiTransportHost with
inert library defaults installed by src/llm/stream.ts. Narrow the public
barrel to instance-scoped createApiRegistry/createLlmRuntime; the
process-default runtime moves behind internal/ and
registerBuiltInApiProviders takes an explicit registry. Delete the
src/llm/api-registry re-export facade.
* fix(ai): teach node, jiti, and vite resolvers the @openclaw/ai and utf16-slice subpaths
The workspace alias tables in root-alias.cjs, plugin-sdk-native-resolver,
sdk-alias, the shared vitest config, and the Control UI vite config only
knew @openclaw/llm-core; Node-side plugin loading resolved @openclaw/ai
through the pnpm symlink to the unbuilt dist (checks-node-compact CI
failures), and the Control UI build broke on the new
normalization-core/utf16-slice subpath.
* chore(ui): drop leftover service-worker debug logging
* build(release): ship @openclaw/ai with its own shrinkwrap and honest dependency set
packages/ai declares only its six real runtime deps (kysely, chalk, json5,
tslog, zod, fs-safe, and proxyline were never imported); orphaned root deps
removed. generate-npm-shrinkwrap now treats publishable packages/* like
publishable plugins so the AI tarball pins its transitive tree even though
workspace deps are omitted from the root shrinkwrap. knip learns the
package entry points; the tsdown dts neverBundle option moves to its
documented deps.dts home; the README documents the no-semver internal/*
contract and host ports.
* docs(ai): add minimal external-consumer example app
examples/ai-chat consumes only the public @openclaw/ai surface (built dist
via the workspace link): isolated runtime, built-in provider registration,
one streamed completion. Supports Anthropic/OpenAI via env keys and a
keyless local Ollama target; live-verified against Ollama.
* docs(ai): document the @openclaw/ai package and workspace shrinkwrap boundary
* chore(check): include examples/ in duplicate-scan targets
* fix: emit normalization package subpaths
* fix: complete AI package boundary artifacts
* fix: align AI package boundary contracts
* fix(ci): stabilize package release contracts
* test: align documentation contract checks
* test: keep cron docs guard aligned
* test: align restored docs contract guards
* test: follow upstream docs contracts
* docs: drop superseded talk wording
2026-07-05 01:56:40 -04:00