Peter Steinberger
a6a0716486
feat(setup): rename Crestodian to OpenClaw system agent
...
User-facing name is now OpenClaw (the system speaks); internal code name is
system-agent. Gateway methods crestodian.* -> openclaw.chat/openclaw.setup.*,
agent tool -> openclaw, reserved agent ids openclaw + retired crestodian.
openclaw setup routes: onboarding flags -> onboard, -m/--yes -> system agent,
bare configured interactive -> OpenClaw chat, unconfigured -> onboarding.
Hidden crestodian CLI and /crestodian TUI aliases kept; docs moved to
docs/cli/openclaw.md with redirect stub. macOS/Android strings in lockstep.
Refs #107237
2026-07-14 11:03:02 -07:00
Peter Steinberger
8456719a90
fix(tokenjuice): preserve middleware boundaries
2026-07-14 11:00:31 -07:00
Peter Steinberger
a8bcaf9505
fix(tokenjuice): drop duplicate compacted output
2026-07-14 11:00:31 -07:00
Peter Steinberger
e20c029efd
refactor(codex): split app-server event projection ( #107680 )
...
* refactor(codex): split app-server event projector
* fix(codex): preserve raw event projection ordering
* chore(codex): remove projector max-lines exemption
* refactor(codex): split stateful projector owners
2026-07-14 11:00:08 -07:00
Peter Steinberger
96eaf2be80
fix: restore recent native, browser, and audio behavior ( #107631 )
...
* fix: repair recent landed regressions
* chore: keep release changelog owned
* test(macos): align CLI fixtures with Node floor
* fix(macos): document Node runtime floor contract
* style(auto-reply): restore runtime mode formatting
2026-07-14 10:47:33 -07:00
Peter Steinberger
433656286d
refactor(ws): use native socket contracts
2026-07-14 10:35:38 -07:00
Jesse Merhi
00364ee777
improve: warn before non-ClawHub plugin installs ( #102197 )
...
Merged via squash.
Prepared head SHA: e08d9e737d
Co-authored-by: jesse-merhi <79823012+jesse-merhi@users.noreply.github.com >
Co-authored-by: jesse-merhi <79823012+jesse-merhi@users.noreply.github.com >
Reviewed-by: @jesse-merhi
2026-07-15 03:25:36 +10:00
Alix-007
0c8220ebf9
fix(msteams): add timeouts to file consent upload requests ( #104120 )
...
* fix(msteams): add timeouts to file consent upload requests
* fix(msteams): share file consent upload timeout helper
* fix(msteams): size-budget file consent upload timeout
* chore(deadcode): allowlist test-only timeout constant exports
* style(msteams): format consent timeout test
* test(msteams): reject consent aborts with errors
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-14 10:14:23 -07:00
qingminlong
04e523a73b
fix(logbook): reject invalid 12-hour analysis clocks ( #107191 )
...
* fix(logbook): reject invalid meridiem clocks
* test(logbook): cover invalid meridiem card output
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-14 09:43:10 -07:00
felirami
c1191cdf2f
fix(memory-core): preserve canonical cache rows during legacy migration ( #107243 )
...
* fix(memory-core): preserve canonical cache rows on migration
* fix(memory-core): guard cache migration dimensions
* fix(memory-core): validate cache embedding lengths
* fix(memory-core): validate cache migration dimensions
* refactor(memory-core): keep cache guard compact
---------
Co-authored-by: felirami <felirami@users.noreply.github.com >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-14 09:40:35 -07:00
Peter Steinberger
f81f9d8570
chore: enforce max-lines suppression ratchet ( #107315 )
...
* ci: enforce max-lines suppression ratchet
* chore: prune stale max-lines suppression
* fix: close max-lines ratchet enforcement gaps
* fix: harden max-lines ratchet checks
* fix(ci): satisfy max-lines ratchet checks
* style: format max-lines declarations
* fix(ci): match oxlint suppression grammar
* test: isolate max-lines git fixtures
* chore: prune resolved max-lines debt
* test: skip newline path fixture on Windows
* fix: harden max-lines suppression ratchet
* chore: refresh max-lines baseline
* fix: close max-lines ratchet bypasses
* fix: derive ratchet base from PR merge tree
* fix: support older Git in staged ratchet
* fix: align max-lines declarations and baseline
* chore: refresh max-lines baseline for current main
* fix: exclude generated wizard locales from max-lines
* chore: prune resolved max-lines debt
2026-07-14 09:27:02 -07:00
Peter Steinberger
cbe012ec70
refactor(matrix): use native sdk event contracts
2026-07-14 09:25:33 -07:00
Peter Steinberger
5f13921c26
fix: preserve Fable thinking on Claude CLI routes ( #107636 )
...
* fix(anthropic): preserve Claude CLI effort on root gateways
* chore: leave release notes to release workflow
2026-07-14 09:15:21 -07:00
Francisco Novella Fletcher
c188222a08
Signal: match allowlist on either uuid or e164 alias ( #78022 )
...
* Signal: match allowlist on either uuid or e164 alias
* fix(signal): route sender aliases through ingress
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-14 08:41:58 -07:00
Alix-007
111f7cde35
fix(telegram): bound stalled diagnostic response reads ( #106035 )
...
* fix(telegram): bound stalled diagnostic response reads
* test(telegram): type timeout cancellation mock
* style(telegram): apply oxfmt to diagnostic response timeout files
* fix(telegram): share diagnostic body deadlines
Co-authored-by: Alix-007 <li.long15@xydigit.com >
* chore: leave release notes release-owned
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-14 08:27:59 -07:00
Peter Steinberger
27d5c0339b
refactor(diffs): use native preload and hydration
2026-07-14 08:22:41 -07:00
Peter Steinberger
fd1ab08d35
fix(signal): keep active-run controls responsive ( #107422 )
...
* fix(signal): keep active-run controls responsive
Co-authored-by: arduano <leonid.shchurov@gmail.com >
* test(signal): satisfy control-lane lint
* fix(signal): serialize queue mutations
* fix(signal): separate control ingress lane
* fix(auto-reply): cancel queued inbound work
* fix(signal): unblock approval responses
* fix(signal): cancel group pending lanes on abort
* refactor(signal): keep ingress lane setup scoped
* docs(changelog): note Signal control ingress fix
---------
Co-authored-by: arduano <leonid.shchurov@gmail.com >
2026-07-14 07:51:18 -07:00
tzy-17
66def08d83
feat(workboard): filter cards by persisted board ( #102068 )
...
* feat(workboard): filter cards by persisted board
Co-authored-by: 唐梓夷0668001293 <tang.ziyi@xydigit.com >
* refactor(workboard): split board filter helpers
* chore(ui): refresh Workboard i18n baseline
* chore(ui): sync Workboard locale fallbacks
* chore(ui): update Workboard locale metadata
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-14 07:25:00 -07:00
Peter Steinberger
21d548a7ff
fix: harden cloud worker admission and remote turns ( #107043 )
...
* fix(cloud-workers): harden worker dispatch
* fix(cloud-workers): enforce Crabbox AWS admission contract
* fix(cloud-workers): sanitize inference terminals
* fix(cloud-workers): bound inference stream work
* fix(cloud-workers): reject unresolved tool deltas
* refactor(cloud-workers): isolate terminal projection
* fix(cloud-workers): satisfy extension lint
* fix(cloud-workers): reject forbidden leases before polling
* fix(cloud-workers): keep helper types internal
* fix(gateway): reject late tool call deltas
* fix(crabbox): clean invalid inspected leases
* refactor(crabbox): extract inspect parser
* style(crabbox): format worker provider
* fix(crabbox): close worker lease cleanup gaps
* docs(cloud-workers): correct runtime contracts
* docs(cloud-workers): match runtime error
2026-07-14 07:24:43 -07:00
Peter Steinberger
f59a0352b3
feat(discord): route online presence arrivals to agents ( #107451 )
...
* feat(discord): add online presence agent events
* fix(discord): harden presence event payloads
* fix(discord): satisfy presence lint contracts
* fix(heartbeat): run notification event wakes
* fix(discord): use wake heartbeat contract
* fix(discord): harden presence snapshot delivery
* chore: remove release-owned changelog entry
* fix(discord): remove unused presence type export
* fix(discord): keep presence config below loc limit
* fix(discord): reserve presence cooldown atomically
2026-07-14 07:22:11 -07:00
Peter Steinberger
2f43afbb30
test(tlon): avoid unsafe optional mock access ( #107572 )
2026-07-14 07:11:47 -07:00
pash-openai
cbbccb8952
Recover large Codex app-server messages ( #107369 )
2026-07-14 07:07:52 -07:00
Peter Steinberger
bacad95379
test(raft): guard optional runtime config schema ( #107563 )
2026-07-14 06:59:05 -07:00
Peter Steinberger
37b6855b0f
test(acpx): drop upstream completion coverage
2026-07-14 06:57:04 -07:00
Peter Steinberger
ec5e97eb78
fix(tlon): use native S3 endpoint parsing
2026-07-14 06:55:01 -07:00
Peter Steinberger
e4aa176c82
refactor(raft): privatize config schema ( #107554 )
2026-07-14 06:37:10 -07:00
xingzhou
fe6e6a5072
fix(searxng): stop web search requests when runs are aborted ( #104216 )
...
* fix(searxng): cancel pending searches with parent runs
* fix(searxng): preserve parent cancellation
* refactor(web-search): isolate provider execution
* fix(web-search): use stable provider type
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-14 06:36:21 -07:00
Peter Steinberger
034b259799
refactor(browser): trust Playwright tab focus
2026-07-14 06:33:40 -07:00
Peter Steinberger
090cb49122
refactor(duckduckgo): privatize safe-search default ( #107542 )
2026-07-14 06:27:12 -07:00
Peter Steinberger
3ac26b4593
refactor(tavily): remove internal export seams ( #107540 )
2026-07-14 06:17:36 -07:00
Peter Steinberger
c8e94b202e
refactor(firecrawl): remove internal export seams ( #107485 )
2026-07-14 06:08:53 -07:00
Peter Steinberger
ee416f0447
refactor(bonjour): trust ciao rejection handling
2026-07-14 05:45:37 -07:00
Peter Steinberger
9de11f098e
fix(release): forward-port July guards and restore main validation ( #107462 )
...
* fix(installer): validate upgraded Windows SQLite runtime
* fix(release): lock packed AI runtime dependency
* test(mattermost): tolerate additional fallback diagnostics
* test(live): make Claude resume proof explicit
* test(plugins): repair exact-main prerelease coverage
* test(release): restore root test type coverage
---------
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
Co-authored-by: Vincent Koc <25068+vincentkoc@users.noreply.github.com >
2026-07-14 05:41:24 -07:00
Alix-007
1d1c1211a5
fix(qqbot): clean up token refresh sleep abort listener ( #105886 )
...
* fix(qqbot): clean up token refresh sleep abort listener
* refactor(qqbot): reuse abort-safe sleep
* test(qqbot): always restore listener spy
* fix(qqbot): preserve refresh loop yield
* chore(qqbot): retrigger CI after main fixes
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-14 05:40:34 -07:00
Peter Steinberger
b4128978cd
refactor(canvas): use native websocket clients
2026-07-14 05:24:27 -07:00
Peter Steinberger
9d79d85f46
feat(workboard): refresh Control UI from live changes ( #99051 )
...
* feat(workboard): refresh control ui from live changes
* refactor(workboard): tighten live invalidation path
* chore(workboard): preserve locale catalog state
* refactor(gateway): keep broadcaster runtime object
* refactor(plugin-sdk): own gateway event types
* test(workboard): bind reconciliation mocks
* test(release): declare recovery helpers
* fix(workboard): cancel direct loads on teardown
2026-07-14 05:17:23 -07:00
Peter Steinberger
af93339752
refactor(slack): use websocket pause during relay handoff
2026-07-14 04:58:25 -07:00
Peter Steinberger
12847f26bb
refactor(web-readability): use native lazy module loading
2026-07-14 04:47:06 -07:00
Ayaan Zaidi
8b66fe773f
feat(mcp): deliver requester-scoped MCP to shared-thread harnesses
...
Requester-scoped servers never enter harness-native MCP config: Codex
thread and CLI user-MCP projections partition them out (fail-closed,
static-partition fingerprints stay sender-independent so shared threads
never rotate). Codex delivers them as per-attempt dynamic tools through
a scoped-only runtime path on the same core manager, with a
session-stable advertised catalog so authed and unauthed senders share
one spec surface; unauthed calls get a clean not-connected tool error.
New SDK seam materializeRequesterScopedMcpToolsForHarnessRun lets any
future harness consume the same contract.
2026-07-14 17:09:53 +05:30
Peter Steinberger
2b0cd2761c
test(anthropic): type node invoke mock from runtime ( #107421 )
2026-07-14 04:39:47 -07:00
Peter Steinberger
e798a76662
refactor(schemas): use TypeBox native enums
2026-07-14 04:25:58 -07:00
Peter Steinberger
97df597688
fix(twitch): abort timed-out user lookups ( #107360 )
...
Co-authored-by: Alix-007 <li.long15@xydigit.com >
2026-07-14 04:22:34 -07:00
Peter Steinberger
5688d90bf3
fix(signal): await daemon exit before restart ( #107409 )
...
Co-authored-by: zhoukailian <2415699291@qq.com >
2026-07-14 04:21:51 -07:00
Peter Steinberger
0604903f88
fix(session-catalog): authorize paired-node reads ( #107410 )
2026-07-14 04:19:09 -07:00
Peter Steinberger
b911f94be7
fix(signal): reconnect receive loop after stalled container handshake ( #107386 )
...
* fix(signal): bound container receive handshake waits
Co-authored-by: NIO <hu.genshen@xydigit.com >
* test(signal): stabilize adapter mocks
---------
Co-authored-by: NIO <hu.genshen@xydigit.com >
2026-07-14 04:13:12 -07:00
Peter Steinberger
4ea1c71b88
fix(signal): keep username targets out of phone normalization ( #107365 )
...
* fix(signal): canonicalize username targets
Co-authored-by: ly-wang19 <ly-wang19@users.noreply.github.com >
* fix(signal): canonicalize username targets
---------
Co-authored-by: ly-wang19 <ly-wang19@users.noreply.github.com >
2026-07-14 04:11:46 -07:00
Peter Steinberger
c56d1bbbbb
fix(reef): send through the connected gateway ( #107373 )
...
* fix(reef): route outbound through gateway
* chore: keep Reef release note in PR
2026-07-14 04:08:36 -07:00
Peter Steinberger
6ceb72d2bd
refactor(memory): split QMD manager responsibilities ( #107381 )
...
* refactor(memory): split QMD manager responsibilities
* fix(memory): keep QMD helper types private
* style(memory): format QMD debug types
2026-07-14 04:07:51 -07:00
Peter Steinberger
dd42e80480
refactor(qa-lab): split mock and Slack runtimes ( #107377 )
...
* refactor(qa-lab): split mock and Slack runtimes
* refactor(qa-lab): narrow Slack helper exports
2026-07-14 04:06:48 -07:00
Peter Steinberger
236a6b815c
refactor(diffs): trim internal export surface ( #107400 )
2026-07-14 04:02:26 -07:00