Commit Graph

5828 Commits

Author SHA1 Message Date
Peter Steinberger 0782a94452 fix(release): require installer doctor evidence 2026-07-10 05:37:58 -07:00
Peter Steinberger 795202863a fix(release): contain installer artifact restores 2026-07-10 05:06:10 -07:00
Vincent Koc de3762676b fix(release): bundle AI runtime in installer smoke (#103556)
* fix(release): bundle AI runtime in installer smoke

* fix(release): verify bundled AI runtime loadability

* fix(release): preserve advisory doctor exits

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-10 02:44:09 -07:00
Peter Steinberger e3caf03f2e fix(release): allow advisory doctor exits in installer smoke 2026-07-10 02:35:46 -07:00
Peter Steinberger 30f54a5fe1 fix(release): proxy upgrade fixtures to npm 2026-07-10 02:34:14 -07:00
Vincent Koc ee8827d92b fix(ci): read Codex bindings from SQLite in live harness (#103467)
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-10 02:34:14 -07:00
Peter Steinberger 1c205e5c92 fix(release): restore bundled AI runtime in update smoke (#103564) 2026-07-10 10:29:35 +01:00
Peter Steinberger a748518333 ci: align release child dispatch and guard tests with the synced umbrella
The synced Full Release Validation umbrella dispatches children with a
dispatch_id and adopts runs by exact name (#102858), so ci.yml,
npm-telegram-beta-e2e.yml, and plugin-prerelease.yml need the matching
input; applies that commit's hunks plus its ci-workflow-guards update,
syncs scripts/ci-live-command-retry.sh, and ports the guard test blocks
that pin the synced workflow text.
2026-07-10 00:40:04 -07:00
Peter Steinberger 8f0d4500af ci: backport release validation evidence reuse and beta live-advisory
Backports the release pipeline speedups from main (ace2407acd and
ancestors) so the 2026.7.1 train benefits immediately:
- metadata-only evidence reuse with input/harness/child-run matching
- Docker runtime-assets preflight runs in parallel with lanes
- release/* umbrella runs supersede in-progress duplicates
- beta profile treats live-provider suites as advisory
Syncing the umbrella workflow also picks up the main-only dispatch
idempotency and transient-read retries (#102858, #102896).
2026-07-10 00:23:30 -07:00
Vincent Koc 2e1c04010a fix(providers): publish Meta provider (#103070)
(cherry picked from commit 266ca5b3a2)
2026-07-09 20:34:27 -07:00
Peter Steinberger 43dcadb532 ci: pin docs i18n Go toolchain (#103244)
(cherry picked from commit 73db6b2aca)
2026-07-09 19:33:21 -07:00
Vincent Koc d36b58cab1 fix(test): harden npm registry fixture proxy 2026-07-09 06:18:50 -07:00
Vincent Koc f7aea57edb fix(release): validate macOS source versions 2026-07-09 06:18:49 -07:00
Vincent Koc a486f3ab08 fix(release): harden publication validation 2026-07-09 06:18:49 -07:00
Vincent Koc 69bdd92a61 fix(release): validate package artifact boundaries 2026-07-09 04:30:50 -07:00
Peter Steinberger d44fb23a03 fix(release): use bundled AI candidate for Bun smoke
Backport the Bun release-validation fix from 42a8679c4d.
2026-07-09 04:30:49 -07:00
Vincent Koc 2b47b1c460 fix(release): install Bun smoke from package set 2026-07-09 04:02:57 -07:00
Vincent Koc 864842c875 fix(release): validate prepared npm package sets 2026-07-09 02:52:39 -07:00
Vincent Koc f7f2ec2e5b fix(ci): stabilize npm shrinkwrap metadata 2026-07-08 15:55:31 -07:00
Vincent Koc 086184684b fix(ci): rewrite workspace deps for OCM installs 2026-07-08 14:33:28 -07:00
Vincent Koc 29d4946345 fix(ci): install workspace packages for Kova 2026-07-08 14:21:51 -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
Vincent Koc ba7af36306 refactor(deadcode): localize script constants (#101892) 2026-07-07 15:17:41 -07:00
Vincent Koc e7365d41d3 refactor(deadcode): localize Parallels helpers (#101889) 2026-07-07 14:53:20 -07:00
Vincent Koc d563101a82 refactor(deadcode): localize test and tooling helpers (#101875) 2026-07-07 13:45:26 -07:00
Vincent Koc 7ff3f2dbf9 refactor(deadcode): localize UI and script symbols (#101858) 2026-07-07 11:55:57 -07:00
Josh Lehman a68caa185b refactor(sessions): move parent-session forking behind the accessor boundary (#101699)
* refactor(sessions): move parent-session forking behind the accessor boundary

* fix(sessions): lazy-load fork transcript runtime to keep accessor imports lean

* test(sessions): align parent fork mock shape
2026-07-07 10:47:02 -07:00
Josh Lehman 453f5968bb refactor(gateway): route chat transcript injection through the session accessor (#101688)
* refactor(gateway): route chat transcript injection through the session accessor

* fix(gateway): avoid map-spread in source reply mirror rewrite results

* perf(sessions): find injected transcript duplicates with a reverse early-exit scan
2026-07-07 09:10:30 -07:00
Peter Steinberger ed28c57e20 fix(codex): validate maintained app-server types (#101726)
Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-07-07 15:48:08 +01:00
Kevin Lin 72ca911e3c fix(release): allow SHA-only extended-stable preflight (#101466) 2026-07-07 07:45:55 -07:00
Vincent Koc b9a3db13f1 test(e2e): parse corrupt plugin timeouts as decimal 2026-07-07 12:03:11 +02:00
Vincent Koc a9c0592831 test(e2e): align corrupt plugin update timeout 2026-07-07 12:03:10 +02: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 bc5a82b26d fix(android): auto-detect the Android SDK when fresh worktrees lack local.properties (#101273) 2026-07-07 10:22:07 +01:00
Vincent Koc 202d90041d test(e2e): authorize doctor install switch repairs 2026-07-07 11:15:05 +02:00
Peter Steinberger 48e77b6abf feat(ios): render inline LaTeX math in completed chat prose (#101388) 2026-07-07 08:46:31 +01:00
xingzhou de152b1f65 fix(plugin-sdk): align speech runtime packaging (#89899)
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-07 07:38:41 +01:00
Vincent Koc 6e6d1aac4c test(openai): add focused realtime live smoke 2026-07-06 23:22:33 -07:00
Vincent Koc c43e020f47 feat(openai): default realtime voice to gpt-realtime-2.1 2026-07-06 23:22:33 -07:00
Josh Lehman 5d9a2b114f feat(context-engine): report compaction successors as typed session targets (#101182) 2026-07-06 22:14:46 -07:00
cxbAsDev 325cdb7f1a fix(infra): swallow mid-stream read errors in session-cost readJsonlRecords (#101062)
* fix(infra): swallow mid-stream read errors in session-cost readJsonlRecords

* fix(infra): keep usage cache strict on read errors

---------

Co-authored-by: Vincent Koc <25068+vincentkoc@users.noreply.github.com>
Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-07-06 21:23:30 -07:00
Peter Steinberger a78538dc2a perf(test): reuse extension test inventory 2026-07-06 23:23:09 -04:00
Peter Steinberger 21d919deb8 fix(onboard): keep the wizard alive through provider auth failures and polish standalone install UX (#100632)
Fixes rough edges in the standalone install flow (install.sh -> openclaw onboard), found and verified by running the flow in a clean container and on a clean macOS Tahoe VM:

- Provider auth setup failures (e.g. the preselected "Anthropic Claude CLI" option on a host without a Claude CLI login) no longer kill the whole wizard. The interactive wizard notes the error and returns to the provider picker; explicit --auth-choice automation still fails fast.
- Onboarding config now persists before the channel/search/skills steps, so a crash or cancel during channel pairing no longer loses auth + gateway decisions.
- With model auth skipped, finalize no longer auto-sends the "Wake up, my friend!" message (which always failed with a provider auth error). The hatch seed is gated on usable model credentials and a "Model auth missing" note explains the next step.
- Search provider picker no longer labels non-key credentials (e.g. SearXNG base URL) as "API key required".
- install.sh no longer warns "PATH missing npm global bin dir" with manual fix steps after it already persisted the export line; it reports the PATH was updated and how to reload the current shell.
- Removed the dead interactive hooks onboarding step (setupInternalHooks); quickstart enables default hooks silently.

Verified live per fix in a clean Debian/Node 24 container and on a clean macOS 26.5 Parallels VM (wizard re-prompt, SearXNG label), plus wizard/onboard test suites and tsgo:core.

🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-07-07 04:11:23 +01:00
Vincent Koc 084cf2a43d fix(ci): refresh deprecated plugin sdk budgets 2026-07-07 04:46:49 +02:00
Peter Steinberger 5df7942f70 fix(ci): refresh plugin sdk export budget 2026-07-06 22:44:30 -04:00