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
Josh Lehman
cb0d8a1294
refactor(sessions): move inbound meta, goals, and delivery reads behind the session accessor ( #101180 )
2026-07-06 18:07:26 -07:00
Josh Lehman
4e2a80cac3
refactor(sessions): route new session store bypasses through the accessor ( #101179 )
2026-07-06 18:05:18 -07:00
Vincent Koc
0e8870da76
fix(ci): refresh Mythos plugin SDK export budget
2026-07-06 17:43:24 -07:00
Vincent Koc
74bb2ad7a5
fix(package): reuse bundled artifact for install smoke
2026-07-07 02:31:09 +02: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
dbba3d2a8e
fix(ci): stabilize Windows startup fallback tests ( #101223 )
...
* test(windows): stabilize startup fallback fixtures
* ci(windows): route daemon scheduler changes
2026-07-07 00:37:50 +01:00
Vincent Koc
2c11f11303
feat(provider): add Featherless AI integration
2026-07-06 16:17:44 -07:00
Peter Steinberger
4c6c9660c3
fix(install): raise postinstall dist scan budget so npm upgrades cannot trip the shared cap ( #101206 )
...
The single InstalledDistScanBudget is consumed across all three prune
walks (legacy-deps prepass, dist file listing, empty-dir sweep). During
an npm upgrade the dist dir transiently holds old+new content-hashed
files, so a real upgrade scan totals ~24k entries against the 25k cap;
one more release of dist growth would make 'npm install -g openclaw'
throw InstalledDistScanLimitError for every upgrading user. Raise the
cap to 100k for real headroom while keeping the unbounded-scan guard,
and ratchet the cap in the test so it cannot be lowered back.
2026-07-07 00:07:05 +01:00
Vortex Openclaw
1f6ddb5df0
feat(models): add Claude Sonnet 5 support ( #98254 )
...
* feat(models): add Claude Sonnet 5 support
Co-authored-by: Ariel Bravy <ariel@vortexradar.com >
* fix(models): align Sonnet 5 validation baselines
* fix(models): satisfy Sonnet 5 CI contracts
* fix(models): enforce Sonnet 5 provider contracts
* docs(changelog): defer Sonnet 5 release note
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
Co-authored-by: Ariel Bravy <ariel@vortexradar.com >
2026-07-07 00:05:35 +01:00
Peter Steinberger
e8b0412781
perf(test): defer plugin sdk compiler startup
2026-07-06 18:55:55 -04:00
Peter Steinberger
66c764b269
feat(ios): tap-to-expand link previews in chat transcript ( #101198 )
2026-07-06 23:47:33 +01:00
Jason (Json)
17d3c2eb0a
feat(ui): redesign chat composer controls ( #100461 )
...
* feat(ui): redesign chat composer controls
* fix(ui): preserve scoped chat model catalogs
* fix(ui): honor configured default agent in chat commands
* fix(ui): align composer translations and tests
* test(ui): expect cached chat commands
* fix(ui): inset composer attachment previews
* fix(ui): add attachment preview top padding
* fix(ui): preserve composer layout after main merge
* fix(ui): keep abort available during voice input
* fix(ui): merge duplicate model provider groups
* feat(ui): finalize chat composer redesign
* fix(ui): refine composer layout and scroll indicators
* fix(ui): align composer with chat column
* fix(ui): restore composer max width
* fix(ui): match composer Codex width
* fix(ui): stabilize chat composer controls
* docs: refresh generated map
* fix(ui): discard rejected model drafts
* fix(ui): clear chat composer CI gates
* test(ui): await rejected model rollback
* fix(ui): address chat composer review findings
* fix(ui): preserve default provider ordering
* fix(ui): stage model picker changes until save
* fix(ui): scope model picker drafts to chat context
* fix(ui): align composer drafts and message actions
* fix(ui): preserve reasoning rendering
* feat(ui): refine chat composer interactions
* fix(ui): repair chat composer CI checks
* fix(ui): repair chat composer integration checks
* fix(ui): translate chat composer labels
* fix(ui): restore mobile camera action
* test(ui): target visible attachment control
* test(ui): locate attachment disclosure directly
* fix(ui): preserve composer control ordering
* test(ui): track current composer controls
* fix(ui): honor terminal active-run state
* fix(ui): guard command metadata ownership
* fix(ui): stage agent model defaults
* fix(ui): preserve chat settings and scroll signals
* fix(ui): reconcile merged chat controls
* fix(ui): localize Talk composer options
* test(ui): infer chat control props
* fix(ui): refresh agent model metadata on session switch
* style(ui): format merged chat controls
* test(ui): avoid shadowed composer geometry names
2026-07-06 16:18:36 -06:00
Josh Lehman
c7295e417d
chore(scripts): add debt ratchet to the session-accessor boundary guard ( #101178 )
...
* chore(scripts): add debt ratchet baseline to session-accessor boundary gate
* fix(scripts): fail session-accessor debt gate until baseline ratchets down
2026-07-06 13:55:16 -07:00
Dallin Romney
66b4dcf184
chore(docker): execute Compose and package artifact proofs ( #101045 )
...
* test(docker): prove Compose and package artifacts
* test(docker): use bounded container cleanup
* test(docker): bound package proof launch
* test(qa): keep Docker artifact proofs release-only
* test(docker): simplify artifact proof names
* test(docker): satisfy identity writer lint
2026-07-06 13:05:34 -07:00
Dallin Romney
2f7299eaa5
test(qa): add provider runtime evidence ( #101051 )
2026-07-06 13:01:32 -07:00
Peter Steinberger
2723628dd9
perf(test): unit-test crabbox provider aliases
2026-07-06 14:52:53 -04:00
Peter Steinberger
bb59790646
perf(test): cache project test inventories
2026-07-06 13:46:49 -04:00
Dallin Romney
d2e6ccf4bb
refactor(test): consolidate script declaration contracts ( #100992 )
2026-07-06 10:26:51 -07:00
Vincent Koc
3ad77774f0
fix: carry 2026.7.1 stability repairs into main ( #101043 )
...
* fix(telegram): throttle reconnect delivery drains
(cherry picked from commit 7182c74d04 )
* fix(agents): honor aborts during session lock acquisition
(cherry picked from commit 6443c2a552 )
* fix(cli): prefer installed launcher package roots
(cherry picked from commit 37e1b324db )
* fix(e2e): allow Linux onboarding to finish
(cherry picked from commit 88192552a0 )
* fix(e2e): scrub single-plugin allowlists on Windows
(cherry picked from commit bee5dee521 )
* fix(e2e): preserve Windows config shape during updates
(cherry picked from commit a580a7fe3f )
2026-07-06 10:17:36 -07:00
Vincent Koc
bf8626c0e9
feat(providers): add LongCat API support ( #100501 )
...
* fix(ai): honor provider reasoning compatibility
* feat(longcat): add hosted provider plugin
* chore(longcat): register package metadata
* docs(longcat): add provider setup guide
* docs(longcat): document self-hosted model routing
* refactor(longcat): externalize provider plugin
* chore(longcat): add npm release artifacts
2026-07-06 10:07:08 -07:00
Dallin Romney
5af7ba92ce
refactor: consolidate byte-size formatting ( #99768 )
...
* refactor: consolidate byte-size formatting
* fix: stabilize byte formatter import boundary
* fix: keep byte formatter within SDK budget
* fix: emit byte formatter package entry
* refactor: trim byte formatter surface
* fix: use narrow byte formatter import
* refactor: remove byte formatter dependency changes
* fix: refresh rebased byte formatter baseline
2026-07-06 09:26:04 -07:00
Dallin Romney
b29d472e41
refactor(qa): add canonical live channel adapters ( #99707 )
2026-07-06 09:24:34 -07:00
Peter Steinberger
83f0527724
feat(ios): word-paced fade-in for streaming assistant prose ( #100884 )
2026-07-06 15:50:58 +01:00
Vincent Koc
b3db79929f
fix(test): preflight targeted UI e2e ( #100950 )
2026-07-06 07:46:08 -07:00
machine3at
5c2604f8cd
fix(cron): use direct lookup instead of paginated search in cron edit ( #100836 )
...
* fix(cron): use direct lookup instead of paginated search in cron edit
* fix(test): update cron-cli tests to mock cron.get and remove obsolete pagination checks
* fix(cron): preserve edit compatibility with older gateways
* fix(cron): preserve legacy lookup error cause
---------
Co-authored-by: Vincent Koc <25068+vincentkoc@users.noreply.github.com >
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
2026-07-06 06:58:22 -07:00
Peter Steinberger
f623d81f52
feat(ui): show background tasks live in the web Control UI ( #100789 )
...
* feat(gateway): broadcast task ledger changes as task events
* feat(ui): add background Tasks page to Control UI
* fix(gateway): address tasks page review findings
* fix(ui): surface tasks.cancel refusals on the Tasks page
* fix(gateway): guard stale task observer disposal against replacement gateways
* chore: satisfy lint and docs-map gates for tasks page
* test(gateway): await async agent unsub in stale-dispose test
2026-07-06 14:36:33 +01:00
Peter Steinberger
876ab9bb0b
feat(android): add chat message actions ( #100879 )
...
* fix(android): add chat message actions
* chore(android): sync native i18n inventory
* fix(i18n): collect Android action labels
* fix(i18n): preserve Android placeholders
2026-07-06 13:50:16 +01:00
Vincent Koc
56fe5d0459
fix(release): skip loader lifecycle scripts on Windows
2026-07-06 04:57:57 -07:00
Peter Steinberger
f53346944d
feat: correlate native search outcomes in audit history ( #98704 )
...
* feat: correlate native search outcomes in audit history
Metadata-only audit ledger for agent runs and tool actions in the shared
state DB: stable event identity, closed action/status/error vocabularies,
one-way-hashed tool-call ids, never-inferred terminal outcomes for native
web-search (explicit completed/failed only; otherwise unknown), bounded
retention, audit.list gateway RPC and openclaw audit CLI. Squashed from
the 82-commit audit stack for replay onto current main.
* feat(audit): add audit.enabled config gate (default on)
The metadata-only audit ledger records by default: an audit trail enabled
only after an incident cannot explain the incident, and the rows are
strictly less sensitive than the transcripts every install already
stores. audit.enabled=false stops new writes at the gateway subscription
seam; audit.list and openclaw audit keep serving existing records until
they expire. Documented in the configuration reference, protocol page,
and CLI reference.
* fix: repair full-matrix CI findings after rebase
- break the dynamic-tools/dynamic-tool-execution import cycle by
extracting resolveCodexToolAbortTerminalReason into a leaf module
- restore main's session-worktree protocol exports lost in the
index.ts auto-merge
- register the audit event writer worker as a knip entry point
- docs table formatting; subagent wait-cancellation test scoped to its
audit intent (outcome + timing) and advanced past main's new
lifecycle-timeout retry grace
2026-07-06 12:30:12 +01:00
Vincent Koc
96e676c2b3
fix(release): hydrate fresh Anthropic OAuth access
2026-07-06 04:20:58 -07:00
Peter Steinberger
827402243d
feat: add Anthropic and OpenAI cost history ( #100672 )
...
* feat(providers): add admin cost history
* fix(ui): sync cron raw-copy baseline
* fix(usage): harden provider cost credentials
* fix(ui): refresh raw-copy baseline
* docs: refresh documentation map
* fix(ci): sync provider usage baselines
* fix(ui): hide zero-cost history bars
* docs(changelog): defer provider cost note
2026-07-06 12:06:55 +01:00
Vincent Koc
cbf9acff37
fix(release): reuse setup-token for Anthropic live checks
2026-07-06 03:46:22 -07:00
Peter Steinberger
1f06b890a6
feat(ios): add model picker favorites and recents with working iOS model switching ( #100774 )
2026-07-06 11:44:13 +01:00
Vincent Koc
17777b3a9f
refactor: remove proven dead code across runtime surfaces ( #100823 )
...
* refactor: remove unused internal helpers
* refactor(ui): remove unused compatibility helpers
* refactor(android): remove unused talk cleanup shim
* refactor(android): remove orphaned legacy UI
* refactor: remove unused private exports
* refactor(docs-i18n): remove dead matcher and satisfy lint
2026-07-06 03:31:19 -07:00
Vincent Koc
fa70403403
fix(release): isolate Claude ACP subscription auth
2026-07-06 02:58:59 -07:00
Vincent Koc
c42ef8b267
fix(release): harden Claude CLI live probe
2026-07-06 02:52:24 -07:00
Vincent Koc
c9abc75884
refactor: remove dead code and consolidate repeated paths ( #100650 )
...
* refactor(search): reuse provider setup finalizer
* refactor(android): remove unused helpers
* refactor(apps): remove unused Swift declarations
* refactor(diagnostics): reuse private reply delivery
* refactor(memory): reuse raw short-term store writer
* refactor(logbook): reuse batch row mapping
* refactor(scripts): centralize oxlint format policy
* refactor(memory): share qmd cache context hashing
* refactor(doctor): share auth issue classification
* chore(i18n): refresh native source inventory
2026-07-06 02:24:37 -07:00
Vincent Koc
d9a2b7c6a9
fix(pr-gates): reject normal root changelog edits
2026-07-06 11:09:49 +02:00