Skip to content

Combined deploy: current OpenClaw PRs on main - #1

Closed
hartmark wants to merge 10000 commits into
mainfrom
feat/openai-responses-continuation-custom-endpoints
Closed

hartmark wants to merge 10000 commits into
mainfrom
feat/openai-responses-continuation-custom-endpoints

Conversation

@hartmark

@hartmark hartmark commented Aug 12, 2026 •

Copy link
Copy Markdown
Owner

What this is

Combined deployment branch: current openclaw/openclaw:main, with every currently-open PR authored by the operator merged on top (squash), so one build carries everything in flight.

Rebuilt by rebuild-combined-pr.sh openclaw (kept at /data/code/claude on the operator's machine, off-repo). Re-run /data/code/claude/rebuild-combined-pr.sh openclaw --push any time a source PR changes to resync this branch -- it re-discovers the open-PR set live via gh, so it needs no other context. See MISTAKES.md next to the script for why this exists.

PRs included

@steipete
steipete force-pushed the feat/openai-responses-http-continuation-cache branch from 3b6ae95 to 24399fd Compare August 12, 2026 14:43
@hartmark
hartmark force-pushed the feat/openai-responses-continuation-custom-endpoints branch from 93e23b4 to 85557d9 Compare August 31, 2026 16:30
@hartmark
hartmark changed the base branch from feat/openai-responses-http-continuation-cache to main August 31, 2026 16:31
@hartmark hartmark changed the title feat(ai): extend HTTP continuation cache to custom OpenAI-Responses-compatible endpoints Combined deploy: current OpenClaw PRs on main Aug 31, 2026
@github-actions

ghost commented Aug 31, 2026 •

Copy link
Copy Markdown

Dependency Guard

This PR changes dependency-related files. Maintainers should confirm these changes are intentional.

Changed files:

  • .github/release/clawhub-cli/package-lock.json
  • .github/release/clawhub-cli/package.json
  • .github/release/vercel-cli/package-lock.json
  • .github/release/vercel-cli/package.json

Maintainer follow-up:

  • Review whether the dependency changes are intentional.
  • Inspect resolved package deltas when lockfile, shrinkwrap, or workspace dependency policy changes are present.
  • Treat package-lock.json and npm-shrinkwrap.json diffs as security-review surfaces.
  • Run pnpm deps:changes:report -- --base-ref origin/main --markdown /tmp/dependency-changes.md --json /tmp/dependency-changes.json locally for detailed release-style evidence.

@hartmark
hartmark force-pushed the feat/openai-responses-continuation-custom-endpoints branch from 85557d9 to 469d91e Compare September 1, 2026 15:28
@github-actions

ghost commented Sep 1, 2026 •

Copy link
Copy Markdown

Dependency graph changes are blocked

OpenClaw does not accept dependency graph changes through PRs unless security explicitly authorizes the current head SHA. Dependency updates are generated internally by maintainers so external PRs cannot change the resolved graph.

Detected dependency graph changes:

  • .github/release/clawhub-cli/package-lock.json changed.
  • .github/release/vercel-cli/package-lock.json changed.
  • .github/release/clawhub-cli/package.json changed dependencies, name, version.
  • .github/release/vercel-cli/package.json changed dependencies, overrides, name, version.

Auto-scrub was not attempted because this PR changes package manifest dependency graph fields:

  • .github/release/clawhub-cli/package.json changed dependencies, name, version.
  • .github/release/vercel-cli/package.json changed dependencies, overrides, name, version.

Dependency graph changes must be reviewed by security or handled by maintainers internally. Please remove lockfile changes manually if they are not needed.

To remove lockfile changes, restore them from the target branch:

git fetch origin
git checkout 'origin/main' -- '.github/release/clawhub-cli/package-lock.json' '.github/release/vercel-cli/package-lock.json'
git commit -m 'chore: remove dependency lockfile change'
git push

If this PR intentionally needs a dependency graph change, ask a member of @openclaw/openclaw-secops to comment:

/allow-dependencies-change

The action will approve the current head SHA (d47a6353ea56eb5776ac9b273c4cf9a4140e335f) when it reruns. A later push requires a fresh approval.

@hartmark
hartmark force-pushed the feat/openai-responses-continuation-custom-endpoints branch from 469d91e to ca894ef Compare September 2, 2026 11:09
@hartmark

ghost commented Sep 2, 2026

Copy link
Copy Markdown
Owner Author

Rebuilt from openclaw/openclaw's currently-open PRs via rebuild-combined-pr.sh openclaw, with two PRs excluded this round (see updated PR body for why — one draft pending a maintainer decision whose useful half already ships here via openclaw#134550, one with a genuine pre-existing conflict against current main needing a rebase, not resolvable mechanically).

Included:

Excluded:

New head: ca894ef9baa

To resync again later: run rebuild-combined-pr.sh openclaw --push — it will hit the same two conflicts again until openclaw#128848 is resolved/closed and openclaw#131568 is rebased.

@hartmark
hartmark force-pushed the feat/openai-responses-continuation-custom-endpoints branch from ca894ef to d47a635 Compare September 2, 2026 11:24
@hartmark

ghost commented Sep 2, 2026

Copy link
Copy Markdown
Owner Author

Rebuilt again to pick up main's latest 10 commits (base advanced from b35d2bec3 to 914059d0a6, 2026-09-02) — same included/excluded PR set as the last rebuild (see PR body), all 3 still merge cleanly.

New head: d47a6353ea5

@hartmark
hartmark force-pushed the feat/openai-responses-continuation-custom-endpoints branch from d47a635 to 79e3ab1 Compare September 2, 2026 12:11
@hartmark

ghost commented Sep 2, 2026

Copy link
Copy Markdown
Owner Author

Rebuilt: openclaw#134550 now carries the P1 scaling-defect fix (ClawSweeper findings clean, awaiting a maintainer's retention-policy call). openclaw#131568 dropped — closed upstream (openclaw#131568), disk cleanup already done by hand, follow-up tracked at openclaw#136284. Same openclaw#128848 exclusion as before (draft, still blocked on the same maintainer decision, still conflicts).

New head: 79e3ab17f8e7ab96d5795a777261effdb52b47d7

@hartmark
hartmark force-pushed the feat/openai-responses-continuation-custom-endpoints branch from 79e3ab1 to 7d0c87f Compare September 5, 2026 17:29
@hartmark

ghost commented Sep 5, 2026

Copy link
Copy Markdown
Owner Author

Rebuilt from openclaw/openclaw's currently-open PRs by rebuild-combined-pr.sh openclaw, extended manually this run.

Included (unchanged from before):

Included, re-merged from scratch after excluding stale siblings:

Newly excluded this run (found stale against current main, see PR body for detail):

Note: openclaw#139037 (sessions_spawn pre-execution-block fix) merged upstream earlier today, so it's no longer "open" and naturally dropped out of this rebuild — that's expected, not a regression.

New head: 7d0c87f14e7

To resync again later: run rebuild-combined-pr.sh openclaw --push. Given openclaw#128633/openclaw#128848/openclaw#134425 need their own reconciliation with current main first, expect the same 3 exclusions until those PRs are rebased.

@hartmark

ghost commented Sep 5, 2026

Copy link
Copy Markdown
Owner Author

Findings from this rebuild

Concrete, verified discoveries from combining the current open-PR set — not just a diff summary.

openclaw#128633 is stale against current main in ways its own tests didn't catch

Four separate incompatibilities, found by actually running packages/ai's full suite after squash-merging it, not by conflict markers (there were none for these):

  1. openai-responses-prompt-observer.test.ts's own afterEach calls cleanupSessionResources() specifically to clear a leaked HTTP-continuation entry (comment: "A native OpenAI model here is store:true-eligible for HTTP continuation... it.each cases in this file commonly reuse the same sessionId") — but that call is a no-op once fix(ai): stop wiping HTTP continuation state on every run-attempt dispose openclaw/openclaw#137544 lands (removes the registration it depends on), so the leak happens anyway, just silently.
  2. openai-responses.test.ts's "clamps small output limits" test expects store: false; under current main's own resolveOpenAIResponsesPayloadPolicy, that same native-OpenAI test model actually already produces store: true — a pre-existing drift between the test and main, unrelated to my PRs.
    3/4. Two more test-level drifts in the same neighborhood, same root cause (test suite not resynced with main's evolution of the payload-policy logic).

None of these are production bugs — Ping's live instance runs openclaw#128633's production code today (via an older combined-merge) with no reported issues. This is purely openclaw#128633's test suite lagging main.

openclaw#134425 targets a function main has since renamed/reshaped

downgradeOpenAIReasoningBlocks + a new hasFollowingNonThinkingBlock helper — current main renamed this to dropStaleOpenAIReasoning and dropped the old shape. The squash-merge produced zero conflict markers (the diffs didn't textually overlap) but left hasFollowingNonThinkingBlock genuinely unused — caught only by tsgo's declared but never used, not by the merge itself. Matches its GitHub mergeable: UNKNOWN/draft state. Needs a real rebase, not a mechanical combine.

openclaw#128848 vs openclaw#134550

openclaw#134550's own PR body says it was split out of openclaw#128848 per ClawSweeper's explicit recommendation ("defer the public config option, retain only the independently useful default and cache-bound work") — openclaw#128848's remaining unique surface (the public config option) was the part review asked to defer, so it's likely a close/superseded candidate rather than something to land separately.

A real bug surfaced only by combining two otherwise-correct PRs

openclaw#134550 (idle-TTL/eviction) and openclaw#137544 (stop wiping continuation state on dispose) each pass their own suite in isolation. Combined, openclaw#134550's exact-count capacity-eviction tests broke: openclaw#137544 removes the registerSessionResourceCleanup registration that used to reset the shared cache between tests, so a leftover ready entry from an earlier test becomes the "oldest" entry an eviction test expects to be its own commit. Fixed with a small test-only resetHttpContinuationCacheForTests() export + wiring — this belongs upstream in whichever of openclaw#134550/openclaw#137544 lands second, not just in this combined branch.

Full detail on all of the above (with exact repro) added to MISTAKES.md next to the script.

@hartmark
hartmark force-pushed the feat/openai-responses-continuation-custom-endpoints branch from 7d0c87f to dd28740 Compare September 6, 2026 00:52
@hartmark

ghost commented Sep 6, 2026

Copy link
Copy Markdown
Owner Author

Rebuilt after closing openclaw#137544 (root-cause diagnosis was wrong — see close comment on that PR) and after PR openclaw#139139's second-review fixes landed.

Removed: openclaw#137544 (closed)
Updated: openclaw#139139 now at its latest head (both P2 findings fixed)
Unchanged exclusions: openclaw#128633, openclaw#128848, openclaw#134425 (see PR body for why)

New head: dd287408b48

To resync again later: run rebuild-combined-pr.sh openclaw --push.

@hartmark
hartmark force-pushed the feat/openai-responses-continuation-custom-endpoints branch from dd28740 to 5087c65 Compare September 6, 2026 01:17
@hartmark

ghost commented Sep 6, 2026

Copy link
Copy Markdown
Owner Author

Re-added openclaw#128633 — good catch that it was wrongly excluded. Its production code is sound (it's what my own live deployment actually runs for HTTP continuation to work); the issues found earlier were purely test-suite staleness against current main, fixed here as targeted test changes:

New head: 5087c6516f1. Included now: openclaw#128633, openclaw#134550, openclaw#139139.

To resync again later: run rebuild-combined-pr.sh openclaw --push.

Peter Steinberger and others added 26 commits September 27, 2026 12:32
Follow the intentional Android wording change in 4288881. That
commit already regenerated the source inventory; update the stale test
expectation while preserving nested-interpolation extraction coverage.

Proof: the live-source inventory test fails before this change and all
43 native i18n tests pass afterward (7.00s runner duration).
Targeted lint and formatting are clean.
…#159852)

Co-authored-by: VACInc <3279061+VACInc@users.noreply.github.com>
…openclaw#159535)

WKWebView starts a Screen Time configuration observer once it is in a
window with an HTTP(S) main frame. ScreenTime delivers configuration via
KVO on WebKit's private update queue while -[WKWebView dealloc] removes
the observer on the main thread, so tearing a web view down during its
initial reply throws NSInternalInconsistencyException and aborts the
Swift Testing process (macos-swift run 36289828982, job 108537817128).

Link a test-only OpenClawWebKitTestSupport target into OpenClawIPCTests
that replaces WebKit's Screen Time install hook with a recorder, add a
regression test for windowed HTTP web views, and document the guard.
Product builds keep Screen Time.
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
…aw#159622)

The fixture awaited a continuation resumed from the main queue. UIKit's
keyboard task queue can spin a nested main run loop inside updateUIView
while the retiring composer is cleared as first responder, so the test body
resumed mid-SwiftUI-update, found the retired editor still attached, and
typed into it while its programmatic-update guard was set (failure at :196;
on current main the same interleaving can also wedge the run).

Wait synchronously and only when the waiter's own run loop is about to
sleep, until the committed composer swap is visible, then assert the editor
identity. Drops the render-phase boundary and its re-entrant layoutIfNeeded.
The CI :197 failure on the openclaw#159350 merge ref was a separate product bug,
fixed in 7f43b35.

Proof (Xcode 27.0, iOS 26.5 sim): with a 16-turn nested-loop injection at
that UIKit point, main's fixture fails 3/4 and hangs 1/4, this fixture
passes 5/5; the new regression fails 3/3 against the old awaited wait;
40 iterations pass 80/80.
…claw#158136)

* fix(cli): keep gateway model runs out of local state migration

* fix(cli): use parsed transport for Gateway model startup

Keep Gateway model invocations on non-observing validation while retaining local/default preparation. Cover flag-shaped prompts through real Commander parsing. Preserve bounded browser diagnostics and correct the TUI fixture to assert the loaded target frame rather than appended prior-session redraws.

Co-authored-by: VACInc <3279061+VACInc@users.noreply.github.com>

* fix(workboard): carry canonical generated asset refresh

Keep the generated Control UI manifest consistent with the unchanged canonical asset builder. The regenerated manifest exactly matches main commit 559b4f8 after the protocol activity schema update; no capabilities or permissions change.

Co-authored-by: VACInc <3279061+VACInc@users.noreply.github.com>

---------

Co-authored-by: VACInc <3279061+VACInc@users.noreply.github.com>
Failing check: checks-node-compact-small-3 (core-tooling-11), immutable
upgrade targets 2026.6.35 and 2026.7.33 in upgrade-survivor-assertions.

Tasks retirement added a static native-assignment-summary import to the
trusted diagnostics module, but frozen scenario staging omitted that
helper. Copy it beside the existing diagnostics helpers. Preserve the
selected historical runner and assertions; no runtime API or test changes.
The two reported core test type errors were already fixed by 0b6f02f.

Proof on ff3c3cb plus this patch:
- Reproduced exactly the two missing-module failures before the fix.
- All ten graphs from core-test stripes 3 and 5 passed.
- pnpm tsgo:core:test (all 25 graphs) and pnpm tsgo:core passed.
- Upgrade-survivor assertions and six siblings: 344 tests passed.
- Media retention, ACP preactive cancellation and accepted ownership:
  24 tests passed.
- Changed-file gate, bash syntax, diff check and Codex P2 autoreview passed.

Broader sibling observations, unrelated to this one-line staging repair:
- docker-build-helper: 352 passed, 2 skipped, 2 June bundle-MCP failures.
  Focused six-case replay moved the failure to log-removal cleanup.
  The unchanged bundle-MCP runner's git archive | tar -x pipeline produced
  empty-stderr SIGPIPE 141 in 15/30 standalone macOS trials despite correct
  extracted bytes; --ignore-zeros passed 30/30. Left as a separate follow-up.
- Planner/mac/tooling selection: 2024 passed; mixed package/plugin consumer
  planning timed out at 120 seconds, again on isolated reproduction.
  Its inputs and planner are unchanged. The performance cause remains
  unresolved; no timeout or assertion was weakened.
openclaw#159785)

## What Problem This Solves

Fixes Russian questions about past conversations not starting deep recall in Active Memory's default escalation mode.

Closes openclaw#159746

## User Impact

Russian users can recall prior conversations without switching to always-on recall. Ordinary Russian messages and future-cued requests without retrospective context skip deep recall. Existing languages, configuration, defaults, and permissions are unchanged.

As with the existing English recall-word heuristic, an untimed “do you remember” request can trigger recall; this is not a grammatical intent parser or a reminder scheduler.

## Why This Change Was Made

Add one Russian `{ intent, future, retrospective }` entry to the existing localized matcher, using the same decision as Chinese, Japanese, and Korean: `intent && (!future || retrospective)`. This replaces the earlier Russian-only clause parser and prospective-task exceptions rather than adding more exceptions for individual phrasings.

Maintainer-intent check: No overlap with Pash/Sarah changes.

## Evidence

Built and ran an isolated Gateway using the repository's mock OpenAI provider over HTTP/SSE and real WebSocket `chat.send`, with Active Memory enabled and `mode` omitted. The baseline used `escalation.ts` from origin/main at 559b4f8. The final candidate was rebuilt at cac1299 after merging the main CI repair.

- `Помнишь, что я говорил про отпуск?`: baseline skipped with `no-recall-intent`; candidate started and completed deep recall.
- `Привет, как дела?`: baseline and candidate skipped with `no-recall-intent`.
- `Ты помнишь завтра отправить отчёт?`: candidate skipped with `no-recall-intent`.
- `Ты помнишь, что нужно будет отправить отчёт?`: candidate skipped with `no-recall-intent`; future forms of `быть` are grammatical future cues.
- `Помнишь, что мы решили развернуть завтра?`: candidate started and completed deep recall, preserving retrospective context despite a future cue.
- `Do you remember what I said about vacation?`: baseline and candidate started and completed deep recall.

All six candidate main turns completed successfully. Gateway logs and actual model requests confirmed the recall sub-agent runs. The empty synthetic corpus returned `no_relevant_memory`; this proves escalation, not retrieval quality against live memories. All proof processes are stopped.

Focused verification: all 87 escalation cases passed (1.59s wall), and both Chinese/Russian default-mode hook cases passed (33.28s wall, including cold compilation after the main merge). The new grammatical-future regression failed before the cue was added. `git diff --check` passed. Commands: `node scripts/run-vitest.mjs extensions/active-memory/escalation.test.ts` and `node scripts/run-vitest.mjs extensions/active-memory/index.test.ts -t 'escalates retrospective'`.

Co-authored-by: Ayaan Zaidi <hi@obviy.us>
6edbb47 replaced native terminal RPC assertions with cancelTurn spies
and a mocked cleanup callback. That concealed the inventory-only authority
regression introduced by 6652f7e and reported in CI run 36339991265.
Unsandboxed authority cannot terminate concrete processes through cancelTurn.

ad76f83 restores thread-owned terminal cleanup outside the sandbox.
Restore the original protocol assertions and fixture responses so the tests
again join terminal listing, termination, and empty-inventory confirmation
before releasing cancellation. Keep cleanup failure propagation and the
activation/Computer Use cancellation checks at the real app-server boundary.

Latest-main reproduction: five failures across the three affected files,
including two unanswered terminal-list RPCs and three assertions rejecting
required cleanup. No new test cases, retries, timeouts, or production seams.

Validation: 34 tests pass across the three repaired files and both native
process-authority neighbors with one worker (430.31s wrapper wall,
including cold imports). The two restored terminal-cleanup cases take
1.99s combined; the existing 15-case cleanup file takes 47.43s of test
time, dominated by its unchanged lifecycle cases. The real RPC boundary
is needed to catch the skipped-cleanup regression that cancelTurn mocks
missed. Independent P2 review is clean.
…ed (openclaw#159848)

Crabbox records provider resources that are not yet attached to a
repository with an empty repoRoot (ClaimLeaseTargetForConfig with
allowEmptyRepoRoot), and refuses to replace an attached root without
--reclaim. The staging claims inventory required every repoRoot to be
absolute, so one unattached claim anywhere in the local namespace made
the whole inventory "unsupported or malformed" and held every staging
entry, including the automatic end-of-run recovery.

Accept the empty root and skip it during source matching; it names no
staging source and must not be resolved against the process cwd.
…GPIPE (openclaw#159849)

The PR tooling subreaper fixture raised "tool descendant did not exit
successfully" both when an adopted descendant was still running and when
one exited non-zero, so a rare Linux CI failure could not name its cause.

tsx starts an esbuild service per worker thread. When the provisioner
closes its state database it terminates those workers; a worker terminated
mid-import leaves its service to fail its response write and die by
SIGPIPE. Node does not reap children spawned from a terminated worker's
event loop, so the zombie is adopted by the test's subreaper once the
provisioner exits. That status is esbuild's host-loss behavior, never part
of the tooling contract: the runner releases only after every operation
thread is a zombie.

Record adopted exits with their status, pid and comm, and fail only on a
descendant still running after the command, naming its pid, state, comm
and argv. Add a Linux regression that hands the reaper a SIGPIPE zombie
and a live orphan without timing.
The request helper used Node's global HTTP agent. A keep-alive response
marks its request destroyed before user end handlers run, so req.destroy()
did not remove the pooled socket. A later retired-port probe could reuse
that socket and get ECONNRESET without accepting any new connection.

Use a one-shot agent and remove the ineffective cleanup. Warm a keep-alive
health response immediately before retirement in the existing regression.
The strict ECONNREFUSED, graceful drain, forced-reset, and transport
ownership assertions remain unchanged; production behavior is unchanged.

Reproduced the exact reset/refusal failure on main ff3c3cb with the
health warmup before fixing the helper (12 pass, 1 fail). Native Node
instrumentation confirmed reusedSocket=true and zero connection/request
events after retirement; fresh connections got ECONNREFUSED.
Original failure: CI run 36337704399, job 108672334094.

Proof: 20 standalone runs; original 34-file shard three times (888 tests
per run); 26 plugin HTTP sibling tests; all changed-file checks; independent
Codex P0-P2 autoreview clean. No retries or timeout changes.
Measured pnpm test src/gateway/server/plugin-legacy-listeners.test.ts
--maxWorkers=1: 80.64s wall after, 121.78s failing regression before;
retirement case 12ms after. Repeated shard runners: 170.69/166.23/159.51s;
20 standalone runners: 477.96s combined. macOS, Node 26.9.0.
…w#159874)

* test(cli): deslop s674 tests

* test(cli): deslop s676 tests

* test(cli): deslop s675 tests

* test(cli): deslop s689 tests

* test(cli): deslop s690 tests

* test(update): deslop s691 tests

* test(update): deslop s696 tests

* test(update): deslop s694 tests

* test(update): deslop s703 tests

* test(doctor): deslop s709 tests
…es its case (openclaw#159846)

In the Vitest threads pool, SqliteReclamationWorker cannot retire an escaped
lease: its fallback cleanup requires the host SQLite broker (main thread). A
fixture that only schedules the worker close with the synchronous
closeOpenClawAgentDatabasesForTest() lets the lease release overlap later
cases and the runner teardown, where an unsettled close fails the file and
retains SQLite custody for the rest of the worker.

openclaw#159445 already drains agent workers before the conversation teardown.
channel-inbound still used the fire-and-forget close, and its maintenance
case's worker was still closing through the next four cases. Await the agent
and shared-state async closes there too, and guard both fixtures so no agent
database async resource escapes the case that admitted it.
Avoid main-only refreshes and repeated blocked routes. Add explicit prior-CI
admin admission for reviewed conflict repairs, pinned to current preparation,
verified earlier CI and current review/security requirements. Preserve honest
operator validation evidence in the native retained merge outcome and dispatch
through the protected SHA-pinned REST squash endpoint.

Pass complete CI changed-path manifests through files so large PRs retain
Node planning inputs beyond the 64 KiB Actions output limit. Keep frozen-target
compatibility and reject missing or malformed current manifests.

Validation: reproduced the historical oversized-manifest failure; 570 CI scope
and workflow cases pass (241.60s wall). Fifteen native admission/dispatch cases
pass (45.90s wall), four existing admission/recovery cases pass (52.48s), and
wrapper inventory passes (21.89s). New manifest cases add subsecond test time;
native process cases cover actual pinned dispatch, authority and receipt gates.

Type checks, typed lint, workflow validation, formatting and source ratchets pass.
Review corrections cover absent or wrong-publisher security checks and ref-suffixed
workflow paths; all three fail against the previous predicates.
…159733)

* improve(android): move context usage into chat actions

Co-authored-by: IWhatsskill <284122573+IWhatsskill@users.noreply.github.com>

* docs(android): describe context in chat actions

Co-authored-by: IWhatsskill <284122573+IWhatsskill@users.noreply.github.com>

---------

Co-authored-by: IWhatsskill <284122573+IWhatsskill@users.noreply.github.com>
…enclaw#159819)

* fix: complete Task retirement test and harness cleanup

* test: finish retirement selector and async fixture cleanup
…penclaw#159840)

* fix(cron): preserve unknown webhook delivery outcomes

* test(cron): complete webhook outcome job fixture

* chore(cron): satisfy webhook change lint guards

* fix(cron): surface unknown delivery in CLI status
…aw#159843)

* fix: preserve authenticated chat identity in execution audits

* refactor: finish reply admission owner cutover
* fix(ui): derive the switch off state from theme tokens

* fix(ui): center the switch thumb
openclaw#159179 moved this fixture from TaskFlow records to the plugin-state worker
client. Plugin state keeps cause text out of its public error message, so the
"offline maintenance" refusal now arrives as the error cause and the three
maintenance-resource cases failed on main. Assert the refusal through the
cause chain; production behavior is unchanged.
…ation (openclaw#134425)

Combined-deploy squash of openclaw#134425. See that PR for the
full commit history, review discussion, and live-verification evidence.
@hartmark
hartmark force-pushed the feat/openai-responses-continuation-custom-endpoints branch from 749dd65 to 29aea52 Compare September 27, 2026 20:51
@hartmark

ghost commented Sep 27, 2026

Copy link
Copy Markdown
Owner Author

Rebuilt from openclaw/openclaw's currently-open PRs by rebuild-combined-pr.sh openclaw. Resolved by hand this time due to unrelated conflicts in openclaw#128848's squash against current main (regex wording drift in scripts/check-changed.mts resolved in favor of current main; a substantially-rewritten test file resolved in favor of openclaw#128848's own content; docs/.generated/config-baseline.* regenerated rather than hand-merged; test/scripts/changed-lanes.test.ts resolved in favor of openclaw#128848's own change).

Removed (closed/merged/landed on openclaw/openclaw, or no longer open):

New head: 29aea52f921

To resync again later: run /data/code/claude/rebuild-combined-pr.sh openclaw --push (self-contained -- rediscovers the open-PR set live, no other session state needed).

@hartmark

ghost commented Oct 2, 2026

Copy link
Copy Markdown
Owner Author

Closing: all source PRs (openclaw#128848, openclaw#134425) are now merged into openclaw/openclaw main. No open PRs remain to combine; this deploy branch has served its purpose. Rebuild via rebuild-combined-pr.sh if a new combined-deploy need comes up.

@hartmark hartmark closed this Oct 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.