Vincent Koc
f11b2493b9
fix(ci): read Codex bindings from SQLite in live harness ( #103467 )
...
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-09 23:32:39 -07:00
Peter Steinberger
54009c15bb
improve(qa): verify native Slack chart delivery ( #103337 )
...
* test(qa): prove Slack native chart delivery
* test(qa): exercise Slack chart verifier through scenario
* fix(build): bound private QA SDK declarations separately
* fix(qa): normalize Slack chart history whitespace
2026-07-10 06:58:33 +01:00
Peter Steinberger
cd9db5ed9a
fix(doctor): keep automated repair from moving approval state ( #103353 )
...
* fix(doctor): isolate automated cross-state imports
* test(update): cover isolated doctor finalization
2026-07-10 05:42:36 +01:00
Peter Steinberger
a789b92b39
fix(macos): harden fresh AI onboarding ( #102637 )
...
* fix(macos): bootstrap Codex before onboarding test
* fix(plugins): activate deferred runtimes on demand
* fix(macos): stage Codex runtime for onboarding probe
* fix(macos): expose sanitized onboarding errors
* fix(codex): reuse native CLI auth during onboarding
* fix(macos): hide Crestodian without inference
* fix(codex): honor explicit runtime policy during setup
* fix(onboarding): redact verification errors
* fix(macos): reset onboarding state with gateway route
* fix(onboarding): persist Codex plugin install metadata
* chore: refresh onboarding inventories
* fix(macos): restart AI setup after gateway change
* chore: refresh native onboarding inventory
* fix(onboarding): defer gateway restart until setup persists
* fix(macos): reset Crestodian on gateway changes
* chore(macos): refresh native i18n inventory
* fix(onboarding): harden inference setup state
* docs(skills): reuse pristine Parallels snapshots
* chore(macos): refresh onboarding i18n inventory
* fix(onboarding): prevent stale gateway and install state
* docs(skills): preserve saved Parallels sessions
* fix(macos): balance AI onboarding layout
* fix(parallels): parse npm workspace pack output
* chore(macos): refresh onboarding i18n inventory
* fix(parallels): bundle workspace runtime in package artifact
* fix(parallels): isolate canonical package helper
* fix(parallels): pack self-contained workspace artifact
* fix(packaging): exclude macOS app bundle
* fix(macos): restart inference checks after route changes
* docs(changelog): defer onboarding note to release
* fix(onboarding): enforce inference-first gateway setup
2026-07-10 04:59:15 +01:00
Peter Steinberger
75dfd3dc09
feat(xai): support Grok Imagine Video 1.5 ( #103316 )
...
* feat(media): add per-model generation catalog metadata
* feat(xai): support Grok Imagine Video 1.5
* test(plugin-sdk): update public surface budget
2026-07-10 04:49:42 +01:00
Peter Steinberger
1696366f88
feat(android): add safe cron job management ( #102997 )
...
* feat(android): add safe cron job management
Co-authored-by: snowzlmbot <293528334+snowzlmbot@users.noreply.github.com >
* fix(android): harden cron editor state
* fix(android): preserve cron state across lifecycle
* fix(android): satisfy cron release gates
* fix(android): retain cron drafts outside saved state
* fix(android): scope cron auto-delete to one-shot jobs
* fix(android): use Compose activity owner
* docs(changelog): note Android cron management
* fix(cron): harden Android job management
* chore(i18n): refresh Android cron inventory
* test(cron): cover enriched read views
* chore(changelog): defer Android cron note to release
---------
Co-authored-by: snowzlmbot <293528334+snowzlmbot@users.noreply.github.com >
2026-07-10 04:12:18 +01:00
Peter Steinberger
add2c586c2
feat(slack): support native chart presentations ( #102635 )
2026-07-10 04:05:23 +01:00
Ayaan Zaidi
6da0af1cd3
fix(ci): use public plugin-sdk test seams and refresh generated surfaces
2026-07-10 07:53:37 +05:30
Peter Steinberger
73db6b2aca
ci: pin docs i18n Go toolchain ( #103244 )
2026-07-10 03:02:52 +01:00
Peter Steinberger
c07fe5fe70
chore(deps): update docs-i18n x/net ( #103225 )
2026-07-10 02:34:00 +01: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
Ayaan Zaidi
f351288a0d
chore(repo): remove stale repository artifacts ( #103152 )
...
* docs: remove merged cron design document
* chore(repo): remove stale planning and proof artifacts
---------
Co-authored-by: Ayaan Zaidi <hi@obviy.us >
2026-07-10 05:28:12 +05:30
Peter Steinberger
d185f9a0b4
fix(infra): preserve characters in truncated response snippets ( #103136 )
...
* fix(infra): preserve bounded response text characters
Co-authored-by: qingminlong <34085845+qingminglong@users.noreply.github.com >
* ci(plugin-sdk): refresh API baseline
---------
Co-authored-by: qingminlong <34085845+qingminglong@users.noreply.github.com >
2026-07-09 23:43:26 +01:00
Peter Steinberger
a1ce77d2a9
fix(cli): reduce plugin listing startup memory ( #103132 )
2026-07-09 23:28:11 +01:00
Peter Steinberger
6c7c97f231
fix(ci): prepare QA runtime for live shard ( #103129 )
2026-07-09 23:06:44 +01:00
Peter Steinberger
db44b284ff
fix: keep usage day buckets correct across DST ( #103097 )
...
* fix: bucket usage days across DST
* docs: document DST-aware usage dates
* perf: reuse usage day formatters
* fix: preserve usage fallback on older gateways
* docs: normalize usage changelog entry
* docs: leave release changelog unchanged
* fix: handle skipped timezone dates
2026-07-09 22:39:57 +01:00
Peter Steinberger
676cf03f7d
ci(release): retry transient MiniMax image failures ( #103114 )
2026-07-09 22:33:33 +01:00
VACInc
740e7687e8
fix(anthropic): don't crash models list when a configured Sonnet 5 model has no cost ( #102186 )
...
* fix(anthropic): don't crash models list when a configured Sonnet 5 model has no cost
applyAnthropicSonnet5Cost read params.model.cost.input unconditionally, so
'openclaw models list' aborted with 'Cannot read properties of undefined
(reading input)' whenever config supplied an anthropic Sonnet 5 model row
without cost metadata (e.g. an agents.defaults.models runtime binding).
Guard with optional chaining — a costless model now falls through and gets
the canonical Sonnet 5 cost applied.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
* fix(models): normalize missing Sonnet 5 costs
Co-authored-by: VACInc <3279061+VACInc@users.noreply.github.com >
* chore(plugin-sdk): refresh API baseline
* ci(plugin-sdk): update surface budgets
---------
Co-authored-by: VACInc <3279061+VACInc@users.noreply.github.com >
Co-authored-by: Claude Fable 5 <noreply@anthropic.com >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-09 22:13:56 +01:00
Oliver Mee
ae11ea5ba9
feat(qwen): add Token Plan (Team Edition) provider ( #94419 )
...
* feat(qwen): add Token Plan provider
Co-authored-by: Oliver Mee <102673257+Omee11@users.noreply.github.com >
* docs: regenerate documentation map
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
Co-authored-by: Oliver Mee <102673257+Omee11@users.noreply.github.com >
2026-07-09 22:07:01 +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
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
d64b9a30cb
fix(ci): remove duplicate Kova gate helper ( #103082 )
2026-07-09 20:28:35 +01:00
Vincent Koc
266ca5b3a2
fix(providers): publish Meta provider ( #103070 )
2026-07-09 12:11:56 -07:00
Peter Steinberger
11fa0cf2d5
fix(ci): honor Kova performance report contracts ( #103030 )
2026-07-09 20:08:25 +01:00
Vincent Koc
a9578436de
fix(ci): accept valid Kova PASS records without violations ( #103002 )
2026-07-09 11:05:32 -07:00
Gio Della-Libera
9f248969f6
Verify signed marketplace feed refresh ( #98338 )
...
* feat: verify signed marketplace feed refresh
* test: fix signed marketplace feed CI
* Guard signed feed refresh trust state
* test(feeds): sign decoded hosted feed payloads
* fix(feeds): make signed snapshot writes monotonic
---------
Co-authored-by: Patrick Erichsen <patrick.a.erichsen@gmail.com >
Co-authored-by: Gio Della-Libera <giodl@microsoft.com >
2026-07-09 10:46:06 -07:00
Vincent Koc
d18e48c928
fix(ci): ignore profiling-only resource gate failures ( #102894 )
2026-07-09 09:22:11 -07:00
Kyle Klouzal
2e160718d4
test(gateway): harden watch regression diagnostics ( #95473 )
...
Co-authored-by: kklouzal <kklouzal@users.noreply.github.com >
2026-07-09 16:36:31 +01:00
Peter Steinberger
8985598302
fix(gateway): stop paired-device duplication and redesign the Nodes page ( #102810 )
...
* fix(gateway): prune superseded silent device pairings on auto-approve
* feat(ui): unified nodes & devices inventory with dedupe and cleanup
* docs: nodes page inventory + silent pairing supersede cleanup
* refactor(gateway): run silent-pairing prune after approval broadcast
* fix(ui): surface node list errors on the nodes inventory card
* fix(gateway): restrict pairing auto-prune to same-host silent approvals
* fix(gateway): report live device connections and guard pairing prune races
* docs(ui): document bulk-cleanup name-collision tradeoff
* fix(gateway): avoid map-spread when marking live device connections
* docs: regenerate docs map
2026-07-09 15:40:30 +01:00
Peter Steinberger
2f013382a0
feat(ui): add settings profile page with lifetime token stats, streaks, and activity heatmap ( #102842 )
...
* feat(ui): add settings profile i18n strings and regenerated locale bundles
* feat(ui): add settings profile page with token stats, streak heatmap, and top tools
* chore(ui): record intentional OpenClaw brand string in raw-copy baseline
2026-07-09 15:03:12 +01:00
Peter Steinberger
07a7d596ff
feat(providers): add Qwen 3.6 Flash and Gemini 3.1 Live ( #102791 )
...
* feat(providers): add current Qwen and Gemini Live models
* fix(google): align live thinking enum type
* fix(google): align live thinking enum type
2026-07-09 13:37:16 +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
Peter Steinberger
292e1cfa1b
feat(cli): refresh startup taglines ( #102750 )
2026-07-09 12:42:31 +01:00
Sally O'Malley
e595a8c0ac
Add Vault SecretRef plugin ( #89255 )
...
* Add Vault SecretRef plugin
Signed-off-by: sallyom <somalley@redhat.com >
* expand Vault setup to registered SecretRef targets
Signed-off-by: sallyom <somalley@redhat.com >
* fix(vault): use sdk secret target seam
* fix(vault): preserve auth profile target paths
* docs(vault): document plugin enable step
* fix(vault): make status provider-alias aware
* fix(vault): reject noncanonical secret ids
* fix(vault): separate resolver timeout deadlines
* fix(vault): forward private CA trust settings
* fix(secrets): preserve plugin policy boundaries
---------
Signed-off-by: sallyom <somalley@redhat.com >
Co-authored-by: joshavant <830519+joshavant@users.noreply.github.com >
2026-07-09 05:30:12 -05:00
qingminlong
a5f5282816
fix(scripts): report startup help stream errors when pipes fail ( #102436 )
...
* fix(scripts): fail startup help rendering on stream errors
* fix(scripts): preserve startup render failure provenance
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-09 09:43:40 +01:00
Peter Steinberger
42a8679c4d
fix: restore release validation on main ( #102516 )
...
* test(qqbot): assert approval fence exactly
* fix(release): wait for ClawHub publish logging
* fix(ci): repair Bun global install smoke
* test(slack): fix app identity fixture
2026-07-09 09:39:08 +01:00
joshavant
f163f32f85
fix(android): make release screenshots deterministic
2026-07-09 01:32:13 -05:00
Peter Steinberger
5533d979d4
feat: add follow-up task suggestions ( #102422 )
...
* feat(tools): add follow-up task suggestions
* chore: leave changelog to release flow
* fix(tools): add task suggestion display metadata
* fix(tools): update task suggestion display snapshot
* docs: format task suggestion tool table
* test(gateway): expect compaction worktree workspace
* test(gateway): preserve configured compaction workspace
* fix(ui): translate task suggestions
2026-07-09 06:30:01 +01:00
Tobias Oort
0307deacfa
feat(github-copilot): support GitHub Enterprise data-residency Copilot auth ( #99221 )
...
Adds GitHub Enterprise data-residency support to the existing bundled GitHub Copilot provider.
Maintainer proof:
- GitHub CI green on head 54010a6538
- `check-lint`, `check-additional-extension-bundled`, and `check-shrinkwrap` passed in CI
- local `pnpm lint:extensions:bundled`, `pnpm lint`, and focused GitHub Copilot Vitest passed
- AWS Crabbox proof passed
- live microsoft.ghe.com device-flow/token-exchange/model-catalog proof passed
Co-authored-by: Tobias Oort <tobias.oort@ict.nl >
Co-authored-by: Gio Della-Libera <235387111+giodl73-repo@users.noreply.github.com >
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-07-08 18:59:41 -07:00
Vincent Koc
eac4214ff8
fix(ci): stabilize npm shrinkwrap metadata
2026-07-08 15:55:50 -07:00
Vincent Koc
e8c1780999
fix(ci): rewrite workspace deps for OCM installs
2026-07-08 14:33:33 -07:00
Vincent Koc
b63317d07e
fix(ci): install workspace packages for Kova
2026-07-08 14:22:22 -07: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
Peter Steinberger
4bf70be01a
feat(secrets): egress-time credential injection with process-local sentinels ( #102009 )
...
* feat(secrets): resolve SecretRef model credentials at egress via process-local sentinels
SecretRef-managed model-provider credentials now travel as opaque
oc-sent-v1 sentinels through auth storage, stream options, and SDK
config; the guarded model fetch injects real values into headers and
URLs immediately before the SSRF-guarded send and fails closed on
unknown sentinels. packages/ai adapters converge on the host guarded
fetch where the SDK supports custom fetch and unwrap at construction
where it does not. Resolved values (and their percent-encoded forms)
register for exact-value log redaction. Kill switch:
OPENCLAW_SECRET_SENTINELS=off. Also fixes a pre-existing unhandled
rejection race in capNonOkResponseBodyLazily (pipeThrough writer leak).
* test(plugin-sdk): update public surface budget
2026-07-08 12:56:41 +01:00
Peter Steinberger
83ebbcb3ac
fix(crabbox): retry cold metadata probes so a slow run --help does not block validation ( #102159 )
...
The wrapper probes `crabbox --version` and `crabbox run --help` once each with a
snappy 5s timeout to enumerate providers before delegating. A cold Crabbox — the
first call right after a version bump, or one on a loaded machine — can exceed
that timeout while rendering `run --help` (52KB, emitted on stderr in 0.36) or
doing first-run init, and can emit nothing on that first call. When that happens
both guards fire and hard-exit the wrapper ("selected binary failed basic
--version/--help sanity checks" or "could not parse provider list from --help;
refusing to run"), which blocks ALL remote validation (`pnpm check:changed`,
remote `pnpm test` lanes) even though the binary is fine.
Retry each metadata probe once with a generous 20s timeout when the first attempt
is killed or returns empty. The warm path is unchanged (one ~instant probe); only
a slow/empty first probe pays for the retry, after which the sanity/provider-list
guards judge the recovered result. Add a regression test: a fake Crabbox whose
`run --help` is slower than the default probe timeout (and, like 0.36, writes help
to stderr) is now recovered by the retry instead of hard-failing.
2026-07-08 12:53:48 +01:00
Jason (Json)
2fbd4cdcba
fix(installer): complete first-run onboarding ( #101901 )
...
* fix(installer): complete first-run onboarding
* docs(installer): document finalization paths
* fix(installer): honor verify without tty
* fix(installer): align config finalization
2026-07-07 18:23:56 -06:00
Vincent Koc
3bbc2732c0
refactor(deadcode): localize script helper types ( #101917 )
2026-07-07 16:59:51 -07:00
Vincent Koc
3dbe98a1f7
refactor(deadcode): localize release tooling declarations ( #101904 )
2026-07-07 16:13:55 -07:00