Peter Steinberger
76b8550afc
refactor(channels): migrate internal callers onto the message-access ingress engine ( #104647 )
2026-07-11 12:33:44 -07:00
qingminlong
47751c117c
fix(discord): bound ffmpeg stderr by bytes ( #104230 )
2026-07-11 12:23:32 -07:00
xingzhou
03558dc008
fix(openrouter): Fusion prompt corrupts boundary emoji in model IDs ( #104433 )
...
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
2026-07-11 12:11:36 -07:00
Peter Steinberger
1879980e52
fix(qqbot): share passive reply budget ( #104634 )
...
* fix(qqbot): share passive reply budget
* chore(qqbot): leave release notes to release flow
2026-07-11 12:10:24 -07:00
dwc1997
87261fd0b1
fix(browser): keep Chrome stderr hint tail UTF-16 safe ( #104603 )
...
* fix(browser): keep Chrome stderr hint tail UTF-16 safe
* test(browser): simplify Chrome stderr failure coverage
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-11 12:10:22 -07:00
moguangyu5-design
aa12e71de7
fix(outbound): preserve attributed inline formatting ( #104118 )
...
* fix(outbound): preserve backticks on <code> tags with attributes
The plain-text sanitizer only matched bare <code> openers, so attributed
variants such as <code class="language-ts"> lost their backtick wrapping
and were stripped to raw text before channel delivery.
Allow optional attributes on the opening <code> tag, consistent with the
existing handling for <h[1-6]> and <li> in the same function.
Fixes #104117
* fix(outbound): preserve attributed inline formatting
Co-authored-by: chengzhichao-xydt <chengzhichao-xydt@users.noreply.github.com >
* test(outbound): compact attributed tag coverage
* fix(outbound): normalize attributed formatting tags
* docs(outbound): clarify attribute normalization invariant
* fix(outbound): preserve native formatting semantics
* docs(plugin-sdk): document sanitizer markup styles
* docs(plugin-sdk): refresh docs map
---------
Co-authored-by: moguangyu5-design <moguangyu5-design@users.noreply.github.com >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
Co-authored-by: chengzhichao-xydt <chengzhichao-xydt@users.noreply.github.com >
2026-07-11 12:03:11 -07:00
Peter Steinberger
6bd14d9129
test(channels): extend bundled artifact parity and add plugin-shape contract suite ( #104618 )
2026-07-11 11:44:34 -07:00
Peter Steinberger
fe3884a7ad
fix(telegram): keep streamed final pages on word boundaries ( #104608 )
...
* fix(telegram): align draft final pagination
* chore: drop release-owned changelog entry
* style(telegram): format pagination parity test
2026-07-11 11:44:09 -07:00
NIO
473df17bd7
fix(feishu): add 30 s request timeout to streaming-card API calls ( #102948 )
...
* fix(feishu): bound streaming-card API requests with a 30s timeout
* fix(feishu): honor configured streaming timeout
Signed-off-by: sallyom <somalley@redhat.com >
* test(feishu): declare streaming mock credentials
Signed-off-by: sallyom <somalley@redhat.com >
---------
Signed-off-by: sallyom <somalley@redhat.com >
Co-authored-by: NIO <nocodet@mail.com >
Co-authored-by: sallyom <somalley@redhat.com >
2026-07-11 14:35:42 -04:00
Peter Steinberger
1a8d9d5f15
fix(browser): allow host-local profile administration ( #104616 )
2026-07-11 11:28:58 -07:00
Sally O'Malley
cdb58cafb5
fix(migrations): converge recoverable legacy state ( #104529 )
...
Signed-off-by: sallyom <somalley@redhat.com >
2026-07-11 11:19:12 -07:00
Peter Steinberger
c648ed0299
test(release): harden prerelease timing contracts ( #104606 )
...
* test(release): harden prerelease timing contracts
* test(whatsapp): satisfy task barrier lint
2026-07-11 11:11:31 -07:00
Peter Steinberger
ea2b558e5e
fix(browser): prevent stale profile resurrection ( #104601 )
...
* fix(browser): serialize profile lifecycle
* refactor(browser): tighten lifecycle cleanup
* chore(browser): keep release note in PR
* test(browser): keep temp fixtures inside plugin
* test(browser): use preferred temp root
2026-07-11 11:06:07 -07:00
Peter Steinberger
d4adddbe9c
refactor(retry): add full-jitter mode and adopt it for mattermost client retries ( #104594 )
2026-07-11 10:56:54 -07:00
Peter Steinberger
8bebdd0d03
test(matrix): delivery trace goldens for generation-scoped edit streaming ( #104596 )
2026-07-11 10:55:27 -07:00
Peter Steinberger
e9b7a9a912
fix(memory): search by filenames and paths ( #104449 )
...
Co-authored-by: Pick-cat <huang.ting3@xydigit.com >
2026-07-11 10:54:34 -07:00
Peter Steinberger
554f253cb0
test(qqbot): delivery trace goldens for replace-mode streaming and reply budget ( #104582 )
2026-07-11 10:54:15 -07:00
qingminlong
9000c9bfe3
fix(file-transfer): audit dir fetch archive size ( #104536 )
...
* fix(file-transfer): audit dir fetch archive size
* test(file-transfer): guard dir fetch audit archive test on Windows
* test(file-transfer): format dir fetch audit guard
* fix(file-transfer): verify directory archive audit metadata
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-11 10:50:51 -07:00
NIO
18e8713b99
fix(google): stream Gemini batch JSONL output instead of res.text() ( #102974 )
...
* fix(google): stream Gemini batch JSONL output instead of res.text()
* fix(google): avoid Promise executor return in batch stream test
---------
Co-authored-by: NIO <nocodet@mail.com >
2026-07-11 13:48:13 -04:00
Peter Steinberger
de8cfd2bf2
test(slack): delivery trace goldens for buffered native streaming and block finals ( #104583 )
2026-07-11 10:32:54 -07:00
Peter Steinberger
444d7dfb1a
test(telegram): delivery trace goldens for the edit-preview lifecycle ( #104581 )
2026-07-11 10:31:46 -07:00
Peter Steinberger
96f0983a85
fix(onboarding): skip setup for configured gateways and require inference first ( #102883 )
...
* fix(crestodian): keep onboarding RPCs restart-safe
* fix(profiles): isolate approval state migrations
* fix(crestodian): bypass configured gateway setup
* test(crestodian): type onboarding mocks
* fix(onboarding): require inference before Crestodian
* fix(onboarding): enforce verified inference handoff
* fix(macos): reset setup on gateway endpoint edits
* chore(i18n): refresh native source inventory
* fix(gateway): keep socket on request cancellation
* test(packaging): require workspace templates
* fix(onboarding): bind setup to verified inference
* fix(onboarding): align inference gate contracts
* fix(crestodian): classify concurrent policy rejection
* test(crestodian): expect registry restoration
* fix(onboarding): bind setup to configured gateways
* fix(codex): preserve startup phase deadlines
* test(crestodian): match fail-closed policy ordering
* test(onboarding): assert bound gateway handoff
* fix(codex): bind runtime resolution to spawn cwd
* test(crestodian): assert policy rejection order
* fix(cli): preserve gateway routing across restarts
* fix(macos): fail closed during gateway edits
* test(macos): cover gateway route generation races
* chore: keep release notes out of onboarding PR
* fix(ci): refresh onboarding generated checks
* style(swift): align gateway channel formatting
* fix(ci): refresh plugin SDK surface budgets
* fix(ci): resync native string inventory
* refactor(swift): split gateway channel support
* test(doctor): isolate plugin compatibility registry
* test(macos): isolate gateway onboarding fixtures
* test(macos): assert gateway lease health ordering
* fix(codex): reconcile computer-use startup changes
2026-07-11 10:25:14 -07:00
Peter Steinberger
702ba19e3a
test(msteams): delivery trace goldens for native append streaming ( #104573 )
2026-07-11 10:18:49 -07:00
qingminlong
fdf5812817
fix(file-transfer): reject oversized inline file writes before node dispatch ( #104556 )
...
* fix(file-transfer): cap inline file write payloads
* fix(file-transfer): validate inline base64 before decoding
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-11 10:16:22 -07:00
qingminlong
f348b291bc
fix(workboard): scope default positions by board ( #104410 )
2026-07-11 10:16:18 -07:00
NIO
a498fc511e
fix(file-transfer): keep bounded stderr tail UTF-16 safe end-to-end ( #104151 )
...
Co-authored-by: NIO <nocodet@mail.com >
2026-07-11 13:06:17 -04:00
NIO
ab9a1c9a84
fix(voice-call): use sliceUtf16Safe for bounded child output tail cap ( #104260 )
...
Co-authored-by: NIO <nocodet@mail.com >
2026-07-11 13:05:16 -04:00
qingminlong
834c146958
fix(browser): reject hex click coordinates in act route ( #104440 )
...
* fix(browser): reject hex click coordinates in act route
* refactor(browser): use route parser for click coordinates
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-11 09:56:09 -07:00
Peter Steinberger
7ef22875ad
fix(slack): preserve canonical block receipts ( #104563 )
2026-07-11 09:51:02 -07:00
Peter Steinberger
57af2bbff0
fix: clear remaining release validation blockers ( #104555 )
...
* test: align provider tool call lifecycles
* test: isolate plugin install repair migrations
* fix: accept catalog temperature compatibility
* fix: disable GPT-5.6 tool reasoning on completions
* style: avoid shadowed stream model
2026-07-11 09:32:16 -07:00
Peter Steinberger
5ca46a6554
feat(cloud-workers): pinned SSH tunnel runtime and provider-owned key resolution ( #104553 )
...
* feat(cloud-workers): add pinned SSH tunnel runtime
* feat(crabbox): resolve cloud worker SSH identities
* docs(cloud-workers): document SSH tunnel contracts
2026-07-11 09:26:08 -07:00
Peter Steinberger
934a974c29
feat(slack): support native data visualizations ( #104539 )
2026-07-11 09:18:39 -07:00
Kevin Lin
b769964e82
feat(codex): support workspace-directory plugins ( #104188 )
...
* feat(codex): support workspace directory plugins
* fix(codex): contain workspace catalog failures
* chore(config): refresh documentation baseline
2026-07-11 09:04:55 -07:00
Peter Steinberger
4271b82fd1
test: align plugin prerelease expectations ( #104542 )
...
* test: align plugin prerelease expectations
* style: format browser doctor test
2026-07-11 09:00:56 -07:00
Peter Steinberger
c3b426f280
feat: add Claude session fleet ( #104528 )
...
* feat: add Claude session fleet
* chore: leave release notes to release automation
* chore: refresh generated catalogs
* fix: satisfy session catalog lint gates
2026-07-11 08:22:59 -07:00
Peter Steinberger
03cab29505
feat(cloud-workers): worker bundle production, pinned SSH bootstrap, and admission handshake ( #104532 )
...
* feat(gateway-protocol): add worker admission handshake
* feat(cloud-workers): build and bootstrap worker bundles
* feat(cloud-workers): wire bootstrap lifecycle
* fix(cloud-workers): state host-key TOFU fallback without warning-comment suppression
* test(cloud-workers): assemble host-key fixture to satisfy review secret scanner
* test(cloud-workers): assemble redaction fixture to satisfy review secret scanner
* fix(cloud-workers): require pinned SSH host keys
* fix(state): add ssh_host_key to additive worker_environments migration
2026-07-11 08:14:30 -07:00
clawsweeper[bot]
1b6393c51e
fix (Computer Use) Stabilize Codex Computer Use readiness ( #103331 )
...
* fix (Computer Use) Stabilize Codex Computer Use readiness
Co-authored-by: Ben Badejo <188106718+bdjben@users.noreply.github.com >
* fix (Computer Use) Stabilize Codex Computer Use readiness
* fix (Computer Use) Stabilize Codex Computer Use readiness
* fix (Computer Use) Stabilize Codex Computer Use readiness
* fix(clawsweeper): address review for automerge-openclaw-openclaw-103331 (1)
* fix (Computer Use) Stabilize Codex Computer Use readiness
---------
Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
Co-authored-by: Ben Badejo <188106718+bdjben@users.noreply.github.com >
2026-07-11 09:42:27 -05:00
Peter Steinberger
ba826be268
test(channels): delivery trace harness with feishu and mattermost goldens ( #104478 )
2026-07-11 06:49:27 -07:00
Peter Steinberger
fa77fe10d5
chore: migrate active GPT-5.5 references to GPT-5.6 ( #104452 )
...
* chore(models): migrate active GPT-5.5 references
* test(workboard): expect GPT-5.6 Sol default
* chore: keep release notes in PR body
* test(models): align picker fixtures with Sol default
* test: update PDF default model expectation
* test(qa): migrate thinking smoke to Luna
* test(gateway): align mock catalog with Sol default
* ci: retrigger exact-head PR checks
* test(gateway): document default catalog invariant
2026-07-11 06:30:57 -07:00
Peter Steinberger
e681646834
feat(cloud-workers): add crabbox worker provider plugin and profile-aware lease lifecycle ( #104465 )
...
* feat(cloud-workers): add Crabbox worker provider
* docs(cloud-workers): document Crabbox profiles
* chore(cloud-workers): drop changelog entry (release-only file)
* refactor(plugin-sdk): pass profiles to worker lease lifecycle
* docs(plugin-sdk): document worker lifecycle profiles
* chore(docs): regenerate plugin inventory, docs map, and sdk baseline after rebase
* fix(cloud-workers): state crabbox key-ref gap without warning-comment suppressions
2026-07-11 05:51:56 -07:00
Peter Steinberger
3f33f0bb5f
refactor(qqbot): adopt core typing keepalive loop with budget accounting intact ( #104438 )
...
* refactor(channels): adopt core typing keepalive loop
* chore(plugin-sdk): pin surface budget for typing keepalive re-export
2026-07-11 05:48:33 -07:00
Peter Steinberger
05aecc1d6f
feat: show Codex transcripts in the sidebar ( #104437 )
...
* feat: show Codex transcripts in sidebar
* fix: clear Codex sidebar on Gateway switch
* chore: leave release notes to release workflow
* chore: refresh native i18n inventory
* fix: satisfy macOS Codex node lint
* fix: refresh native localization inventory
* docs: refresh documentation map
* chore: refresh UI locale metadata
2026-07-11 05:39:29 -07:00
Peter Steinberger
1285fd6db4
fix(whatsapp): keep pre-connect recovery replayable ( #104450 )
2026-07-11 05:03:59 -07:00
xingzhou
745cfc028e
fix(codex): bound shared app-server startup waits ( #89442 )
...
* fix(codex): isolated cron reports Codex startup stalls
* fix(codex): isolated cron reports Codex startup stalls
* fix(codex): bound shared app-server startup waits
Co-authored-by: 张贵萍0668001030 <zhang.guiping@xydigit.com >
* test(codex): satisfy startup lifecycle checks
* test(codex): align deferred auth test type
* test(codex): type auth mock as async void
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-11 04:58:55 -07:00
Peter Steinberger
90e465833b
feat(gateway): durable cloud worker environments, provider SDK contract, and lifecycle RPCs ( #104401 )
...
* docs(plan): add cloud workers design plan
* feat(plugin-sdk): add cloud worker provider foundations
* feat(protocol): add worker environment lifecycle shapes
* feat(gateway): persist worker environment lifecycles
* test(gateway): pin environment inventory assertion for damaged worker store
* style(cloud-workers): satisfy lint and docs formatting
* fix(gateway): narrow worker environment type boundaries
* chore(plugin-sdk): account for WorkerProvider surface growth
* docs: regenerate docs map
2026-07-11 04:54:27 -07:00
xingzhou
af80736057
fix(qa-lab): keep bounded web snapshots UTF-16 safe ( #104249 )
...
* fix(qa-lab): keep bounded web snapshots UTF-16 safe
* fix(qa-lab): keep diagnostic truncation UTF-16 safe
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-11 04:49:00 -07:00
Peter Steinberger
2d319961d5
fix(browser): block interaction-triggered navigation SSRF ( #104254 )
...
* fix(browser): guard interaction navigation requests
* fix(browser): preserve pages on blocked navigation
* fix(browser): enforce interaction navigation policy
* test(browser): type navigation guard fixtures
* fix(browser): execute guarded wait predicates
* style(browser): satisfy interaction lint
* fix(browser): guard hover drag and scroll navigation
* fix(browser): type policy check outcomes
* test(browser): type navigation guard mocks
* fix(browser): preserve proxy policy for guarded interactions
* fix(browser): carry navigation policy through actions
* fix(browser): retain policy for existing-session guards
* fix(browser): guard existing-session waits
* test(browser): avoid shadowed guard pages
* fix(browser): expose scroll action to agents
* fix(browser): disable speculative managed preconnects
* docs(browser): bound managed preconnect hardening
* fix(browser): keep wait behavior outside interaction guards
* chore(browser): leave release notes to release automation
* fix(browser): guard all interaction navigations
2026-07-11 04:30:33 -07:00
Peter Steinberger
3902adf9f6
refactor(channels): adopt core retryAsync for hand-rolled retry loops ( #104431 )
2026-07-11 04:30:21 -07:00
llagy007
cba9ffb177
fix(memory): skip blank search provider bootstrap ( #103728 )
...
* fix(memory): skip blank search provider bootstrap
* refactor(memory): simplify blank search preflight
---------
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
Co-authored-by: Peter Steinberger <peter@steipete.me >
2026-07-11 04:19:40 -07:00
Peter Steinberger
234e8f4fae
test(discord): exercise multipart proxy fetch path ( #104421 )
2026-07-11 04:13:00 -07:00