Skip to content

chore(sync): merge upstream main (29k commits) β€” repairs the fork CI baseline, includes openai 7 - #6

Merged
catomean merged 10000 commits into
mainfrom
sync/upstream-2026-09-02
Sep 3, 2026
Merged

chore(sync): merge upstream main (29k commits) β€” repairs the fork CI baseline, includes openai 7#6
catomean merged 10000 commits into
mainfrom
sync/upstream-2026-09-02

Conversation

@catomean

@catomean catomean commented Sep 2, 2026

Copy link
Copy Markdown
Collaborator

Repairs the fork's red CI baseline by syncing with upstream instead of patching lanes one by one.

Divergence measured: fork was 2 commits ahead, 29,161 commits (3 months) behind upstream openclaw/openclaw (fork base d4b4a6580 2026-06-06). Both fork commits are obsoleted by upstream itself:

What this PR is: a single merge commit whose tree is byte-identical to upstream b6306da1a9aff3fb21dc4f8e753721304c7c780d β€” the most recent upstream main commit with a fully green upstream CI run (verified via gh run list --repo openclaw/openclaw). All conflicts resolved in upstream's favor; nothing hand-written.

Red lanes on fork main this should fix (baseline run 33454090314): build-artifacts, check-shrinkwrap, checks-fast-bun-launcher, security-fast, check-docs β€” plus the check-test-types implicit-any failures that sank PR #5 (upstream's current tree type-checks in its own CI).

openai 6β†’7 (the goal of closed PR #5): already included β€” upstream ships openai 7.5.0. No separate bump PR needed after this lands.

Merge method: use a merge commit (not squash) so future upstream syncs share history; squashing 29k commits would orphan the fork from upstream's DAG permanently.

Production is untouched: the gateway installs from npm-global and runs its own nvm Node 22.

πŸ€– Generated with Claude Code

https://claude.ai/code/session_01WqKqMnHQHSmkGFfc5t7Rxn

steipete and others added 30 commits August 28, 2026 11:49
* feat(buzz): support flat replies with committed tool-state tracking

Keep automatic reply and typing placement in the Buzz plugin, preserving default threading and explicit targets. Reconcile with canonical schema, transcript-cache, live-argument, and correlation-ID owners on main; retire pending results only after persistence and before callbacks.

* docs(buzz): keep release notes in the PR
…131963)

Unify accepted-send recording and remove duplicate participant, Activity, avatar, and listener projection paths. Preserve identity, timing, visibility, and storage contracts; retain boundary coverage and isolate the pre-existing shared /tmp test fixture.
Relay Claude CLI partial assistant snapshots through the canonical parser while keeping nested tool-result text out of visible replies.

Co-authored-by: Ayaan Zaidi <hi@obviy.us>
…law#131961)

* test(exec): characterize companion response loss without local replay

Exercise signed Unix socket requests, real native execution, and enforced routing after a lost response. Clarify that HOST=app already requires the companion; FALLBACK does not change current routing. This records the nullable transport ambiguity without changing production behavior.

* test(exec): stabilize transport proof fixtures

Use socket-owner readiness and awaited shutdown for the real native proof. Freeze the JSONL deadline instead of asserting wall-clock latency, and align fixture types with the existing test helpers.

* test(macos): observe native cancellation fixture readiness

Wait for registered PID-marker observation or a real native terminal response before injecting cancellation. Gate the sentinel delay on readiness and drain failure cleanup before removing fixture state. Cover slow admission, early native failures, and incomplete PID publication without changing production behavior.

* test(exec): register and validate native proof client
* feat(ui): keep latest assistant actions visible

* fix(ui): scope latest actions to group footer

* fix(ui): hide assistant actions after user follow-up
…1811)

* improve(ui): refine chat image presentation and controls

* fix(ui): address chat image review findings

* style(ui): format chat image coverage
* feat(profile): enable Git co-author credit by default

Verified GitHub identities now get public `Co-authored-by` credit unless the
person explicitly opts out. An absent `git.coauthor.enabled` row is the default
rather than a refusal, resolved through one shared helper used by both the
attribution resolver and the Control UI toggle.

* fix(profile): fail closed on malformed co-author preference values

The preference API persists arbitrary JSON, so `value !== false` let a
non-boolean row read as consent to publish a verified person's public Git
trailer. Only a missing row or literal `true` now enables credit, with
regression coverage at the attribution resolver and the profile toggle.

* docs(vision): state the team-assistant direction alongside personal use

The privacy rule governs what leaves an install, not what teammates see on a
shared Gateway. Say that explicitly so co-author credit and other shared-session
attribution are not read as a violation of the telemetry opt-in rule, and name
team.openclaw.ai as where OpenClaw is built with OpenClaw.
* perf(installer): use blobless PowerShell clones

* fix(installer): preserve clone compatibility on older git

* fix(installer): recognize modern git filter help
* fix(ui): retain prompts after cloud startup failures

Keep the initial submission in its existing scoped tab recovery until delivery is confirmed. Retry known failures on the created session and captured target; check uncertain delivery without replaying work. Preserve attachment ownership and newer submissions.

Refs openclaw#131452.

* test(ui): clarify placement startup fixture names

* fix(ui): preserve initial-turn ordering across reconnects

Keep unresolved placement submissions ahead of ordinary chat admission while transport is disconnected, without exposing content or executing through stale credentials. Preserve lazy and memory-only recovery ownership and distinguish first dispatch after an explicit create retry from placement reconciliation.

* docs(ui): describe automatic transcript text recovery

* fix(ui): hold chat admission until initial recovery settles

Keep later input behind credential recovery and the retained initial turn. Wake the canonical outbox drain when readiness or initial ownership resolves, after projecting the initial handoff. Cover cold Hello, accepted receipt and invalid-record release through the browser boundary; retain ordinary offline queuing.
…#131827)

* test(agents): reproduce diagnostic loss in context guard

Refs openclaw#131824. Expected-RED diagnostic baseline only; runtime behavior is unchanged.

* test(agents): extend tool-result diagnostic baseline

* fix(agents): unify bounded tool-result projection

* docs(agents): explain bounded content array invariant
Co-authored-by: roboclaw-bot <309084314+roboclaw-bot@users.noreply.github.com>
Co-authored-by: Vito Cappello <3279061+VACInc@users.noreply.github.com>
…2018)

* improve(ui): clarify picker selection and keyboard focus

* test(ui): observe renewed dashboard frame before sampling colors
…2010)

Optional memory maintenance must not reset unsummarized conversation history. Preserve ordinary replies after exhausted flush retries and surface required compaction failures through the existing recovery outcome.

Fixes openclaw#131957
openclaw#117166)

* feat(tooling): add isolated template markdownlint policy for workspace templates

* feat(tooling): wire isolated template markdownlint lane into docs check

* fix(ci): include template markdownlint config in docs change detection

* test(ci): guard template markdownlint config in docs change detection

* chore: retrigger CI
Expose the existing page-error log to agents with requests-style limits,
untrusted-content wrapping, node proxy routing, and browserTab metadata.
Share bounded debug-log formatting and hide unsupported Chrome MCP actions.

Follow up on openclaw#131592, which added requests, text, and emulate actions.
Co-authored-by: roboclaw-bot <309084314+roboclaw-bot@users.noreply.github.com>
* fix(webchat): show per-file attachment failures

* fix(webchat): announce completed attachment failures

* fix(media): preserve plugin error codes
…131918)

* refactor(codex): simplify native override policy and tests

* test(codex): retain native teardown after timeouts
Keep Beam terminal work until the remote receiver confirms success. Bound and fairly rotate retry state, gate terminal sends on confirmed inactivity, and document the process-local restart limit.

Co-authored-by: Leon-SK668 <0668001470@xydigit.com>
Co-authored-by: Ayaan Zaidi <hi@obviy.us>
…claw#131960)

The schema-driven config form and the hand-written settings pages each
rendered their own circular "Reset to default" icon button next to any
overridden row. It was persistent chrome on a surface that is already
dense, and every affected control can reach its default directly.

Deletes both implementations (`renderRestoreDefaultButton`,
`renderSettingsDefaultState`) and the callback chains that existed only
to feed them. The "Default: x" / "Using default: x" descriptions stay.
PollyBot13 and others added 22 commits August 29, 2026 08:50
…w#131966)

Prevent timer-only Gateway stalls from restarting channel connections while replies or agent startup work remains active. Recovery now closes admission, defers reconnect until the canonical active-work inventory is idle, and retries only incomplete account handoffs.

Co-authored-by: PollyBot13 <pollybot13@gmail.com>
Co-authored-by: Ayaan Zaidi <hi@obviy.us>
…nclaw#132227)

* fix(sessions): preserve fork lifecycle ownership and context

Preserve incognito storage, revalidate message-cut authority at commit, and keep late UI fork results scoped to their presentation. Carry prepared child identity and actual context through subagent cleanup and receipts. Verify native source cuts with canonical projection and preserve supervision connection and cleanup ownership. Document the separate canonical-descendant initialization limitation.

* refactor(agents): remove unused subagent prompt task input

* test(codex): validate native fork fixture request shapes

* fix(codex): avoid inherited labels in native session forks

* fix(test): align fork prompt fixtures and session type imports

* refactor(agents): reuse subagent attachment result type
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Restore machine choices from the canonical mapped class catalog, including Machine0, while retaining unknown resources and unmapped-provider handling. Fixes openclaw#132291.
`agentic-gateway-core` is striped by file, and two of its files --
`gateway-active-memory` and `gateway-concurrent-streams` -- are registered in
`runtimeConsumers`, so any stripe holding one inherits `pretestBuildMode` and
runs `pnpm build:ci-artifacts` before its tests. Striping spread them, so every
gateway-core job paid that build.

Measured on run 33215955822, `checks-node-compact-large-6` spent 275s building
to run 118.2s of tests, and the three gateway-core jobs were the three slowest
in CI at 512s, 436s and 368s against a 9:30 wall.

Pull those files into one `agentic-gateway-core-runtime` shard, derived from
`runtimeConsumers` rather than hardcoded so the two lists cannot drift. The
ordinary stripes lose their build entirely; exactly one job builds, on both the
blacksmith and hybrid profiles.

Weight that shard at 145s and mark it exclusive so the packer neither stacks
partners onto the one job paying the build nor stripes it in two above the 150s
`COMPACT_GITHUB_MAX_PREDICTED_SECONDS` threshold, which would restore the
duplicate build this change removes.

Guards move with the plan: the gateway expectation now asserts the invariant
directly -- no stripe carries a build mode, exactly one sibling shard does --
and the stripe-coverage check spans the stripes plus that shard, so a dropped
file still fails it (it caught 552 against 554 while this was being written).
* fix(native): keep TLS tests out of operator storage

* fix(macos): close live native test storage escapes

Keep dashboard probes on their owning dependency, make preview Talk projections non-live, and restrict menu and WebChat test work to owned resources. Preserve normal TLS and recovery behavior; remove obsolete test mirrors and shared-connection fallbacks.
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
…w#130958)

* fix(auto-reply): preserve channel context in command prompts

* fix(auto-reply): honor channel threading adapters

* fix(auto-reply): keep provider ids out of action targets

* refactor(agents): share runtime prompt resolution

* test(agents): preserve absent runtime action targets

* test(telegram): prove command prompt channel context

* fix(qa): preserve typed Crabline thread targets

* fix(qa): retain logical Matrix room targets

* test(qa): use Telegram native export command

* test(qa): authorize Telegram export operator

* fix(qa): preserve versioned targets through actions

* test(qa): expect versioned group thread target

* fix(qa): preserve typed Matrix targets

---------

Co-authored-by: Patrick Erichsen <patrick.a.erichsen@gmail.com>
…32255)

* fix(ui): keep session desktops connected to their execution machine

* refactor(ui): remove obsolete desktop focus wrapper

* test(ui): cover session desktop authentication in side rails

* fix(ui): preserve the global desktop picker on chat routes

* fix(ui): follow session placement changes in desktop popouts

* test(ui): wait for desktop menu transitions to finish
…openclaw#132336)

* test(onepassword): reuse immutable client interpreter fixture

* test(onepassword): compile resolver fixtures once per suite
…er results (openclaw#131585)

* fix(web-fetch): honor cancellation in the provider fallback

Pass the optional AbortSignal execution context through fetch providers and the Firecrawl adapter. Reject late provider results before wrapping or caching, recheck after asynchronous payload construction, and preserve cancellation through HTML fallback recovery.

* fix(web-fetch): finalize cancellation before caching results

Reject pre-aborted cache hits and preserve cancellation when a provider or guard cleanup fails after abort. Centralize direct and provider cache publication after the complete fetch lifecycle so cancellation during release cannot leave a successful entry.

Extend all four fallback cancellation cases with late provider failures, cover direct/provider pre-aborted cache hits and guard-release races, and document the completed cancellation boundary.

* fix(web-fetch): scope the post-cancellation guard to provider failures

The cancellation guard sat in runWebFetch's catch, so a fetch that rejected
*because of* the abort had its original error replaced by signal.reason. That
discarded the transport's own failure detail and changed an existing contract:
web-tools.fetch.test.ts asserts the tool surfaces the aborted fetch's error.

fetchWebPayload already rethrows the original error when the signal aborted, so
the outer guard only ever needed to cover the provider-fallback path, where a
late failure should surface the caller's abort reason rather than an error from
work the caller had already abandoned. Move it there and drop the outer catch.

* docs(web-fetch): state cancellation forwarding and error preservation accurately

Two wording corrections from deep review. The inline comment claimed an
abort-caused fetch rejection "already carries the caller's reason", which the
regression test deliberately shows is not always true; the code preserves the
right object regardless. The docs implied cancellation stops provider work,
when core only forwards the signal and rejects late results.
…olesale

The fork was 2 commits ahead and 29,161 commits (3 months) behind upstream.
Both fork commits are obsoleted by upstream itself:

- #1 (engines node >=20): upstream now declares >=22.22.3 <23 || >=24.15.0 <25 || >=25.9.0 β€” stricter and correct.
- #2 (@types/node 26 + CI action majors): upstream is on @types/node 26.2.0 and maintains its own workflow pins.

So this merge resolves everything in upstream's favor: the resulting tree is
byte-identical to upstream b6306da β€” the most
recent upstream main commit with a fully green upstream CI run. This repairs the
fork's red baseline lanes (build-artifacts, check-shrinkwrap,
checks-fast-bun-launcher, security-fast, check-docs) the way upstream keeps them
green, instead of patching lanes one by one against a 3-month-old tree.

The openai 6β†’7 bump this fork wanted (closed PR #5) is already included:
upstream ships openai 7.5.0.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WqKqMnHQHSmkGFfc5t7Rxn
@github-actions

github-actions Bot commented Sep 2, 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.

@github-actions

github-actions Bot commented Sep 2, 2026

Copy link
Copy Markdown

Dependency graph changes noted

This PR includes dependency graph changes. The dependency guard is informational because the PR author is a repository admin or a member of @openclaw/openclaw-secops.

  • Current SHA: 9cd6d1da8cd5ef84a59ab3de70ae18363fa61009
  • Trusted actor: @catomean
  • Trusted role: pull request author; repository admin

Security review is still recommended before merge when the dependency graph change is intentional.

Comment on lines 149 to +167
- name: Setup Node.js
id: setup-node
shell: bash
env:
REQUESTED_NODE_VERSION: ${{ inputs.node-version }}
OPENCLAW_NODE_TOOLCHAIN_ROOT: ${{ inputs.cache-mode != 'off' && runner.os != 'Windows' && format('{0}/openclaw-node-toolchain/node', runner.temp) || '' }}
run: |
set -euo pipefail
source "$GITHUB_ACTION_PATH/../setup-pnpm-store-cache/ensure-node.sh"
openclaw_ensure_node "$REQUESTED_NODE_VERSION"
echo "resolved-version=$(node -p 'process.versions.node')" >> "$GITHUB_OUTPUT"
# Only a download populates the cached root. An image whose toolcache
# already clears the floor leaves it absent, and saving a missing path
# warns without producing an entry.
if [ -n "${OPENCLAW_NODE_TOOLCHAIN_ROOT:-}" ] && [ -d "${OPENCLAW_NODE_TOOLCHAIN_ROOT}" ]; then
echo "toolchain-populated=true" >> "$GITHUB_OUTPUT"
fi

- name: Configure dependency cache store
Comment on lines 231 to +241
- name: Setup pnpm
id: setup-pnpm
uses: ./.github/actions/setup-pnpm-store-cache
with:
node-version: ${{ inputs.node-version }}
use-actions-cache: ${{ inputs.use-actions-cache }}
# On an exact dependency-cache hit, the same archive already restored
# the complete store. Every miss can seed it from the coarser cache,
# including legacy Blacksmith callers that disabled that old fallback.
cache-mode: ${{ inputs.cache-mode != 'off' && (inputs.dependency-cache != 'true' || steps.dependency-cache.outputs.cache-hit != 'true') && 'restore' || 'off' }}

- name: Setup TruffleHog
Comment on lines +241 to +246
- name: Setup TruffleHog
if: inputs.install-trufflehog == 'true'
shell: bash
run: bash scripts/install-trufflehog.sh

- name: Restore Vitest transform cache
Comment on lines +161 to +167
- name: Run agents delete shared workspace Docker CLI smoke
env:
OPENCLAW_AGENTS_DELETE_SHARED_WORKSPACE_E2E_IMAGE: openclaw-dockerfile-smoke:local
OPENCLAW_AGENTS_DELETE_SHARED_WORKSPACE_E2E_SKIP_BUILD: "1"
run: bash scripts/e2e/agents-delete-shared-workspace-docker.sh

- name: Run Docker gateway network e2e
Comment on lines +167 to +173
- name: Run Docker gateway network e2e
env:
OPENCLAW_GATEWAY_NETWORK_E2E_IMAGE: openclaw-dockerfile-smoke:local
OPENCLAW_GATEWAY_NETWORK_E2E_SKIP_BUILD: "1"
run: bash scripts/e2e/gateway-network-docker.sh

- name: Smoke test Dockerfile with matrix extension build arg
Comment on lines +414 to +425
- name: Pack ClawHub package artifact
env:
CLAWHUB_REGISTRY: ${{ env.CLAWHUB_REGISTRY }}
SOURCE_REPO: ${{ github.repository }}
SOURCE_COMMIT: ${{ needs.preview_plugins_clawhub.outputs.ref_revision }}
SOURCE_REF: ${{ github.ref }}
SOURCE_REF: ${{ inputs.release_tag != '' && format('refs/tags/{0}', inputs.release_tag) || github.ref }}
PACKAGE_TAG: ${{ matrix.plugin.publishTag }}
PACKAGE_DIR: ${{ matrix.plugin.packageDir }}
run: bash scripts/plugin-clawhub-publish.sh --dry-run "${PACKAGE_DIR}"
OPENCLAW_CLAWHUB_PACK_OUTPUT_DIR: ${{ runner.temp }}/clawhub-package-artifact
run: bash scripts/plugin-clawhub-publish.sh --pack "${PACKAGE_DIR}"

publish_plugins_clawhub:
needs: [preview_plugins_clawhub, preview_plugin_pack, validate_release_publish_approval]
if: github.event_name == 'workflow_dispatch' && needs.preview_plugins_clawhub.outputs.has_candidates == 'true'
- name: Upload ClawHub package artifact
Comment on lines 426 to +431
- name: Preview npm pack contents
run: bash scripts/plugin-npm-publish.sh --pack-dry-run "${{ matrix.plugin.packageDir }}"
env:
OPENCLAW_PLUGIN_NPM_PUBLISH_TAG: ${{ inputs.npm_dist_tag == 'extended-stable' && inputs.npm_dist_tag || '' }}
run: bash .release-tooling/scripts/plugin-npm-publish.sh --repo-root "$GITHUB_WORKSPACE" --pack-dry-run "${{ matrix.plugin.packageDir }}"

- name: Prepare immutable npm preflight artifact
Comment on lines +1549 to +1556
- name: Setup Node environment
uses: ./.github/actions/setup-node-env
with:
cache-mode: restore
node-version: ${{ env.NODE_VERSION }}
install-bun: "false"

- name: Verify complete plugin registry readback
Comment on lines +1556 to +1577
- name: Verify complete plugin registry readback
env:
PACKAGE_NAME: ${{ matrix.plugin.packageName }}
PACKAGE_VERSION: ${{ matrix.plugin.version }}
run: node scripts/verify-plugin-npm-published-runtime.mjs "${PACKAGE_NAME}@${PACKAGE_VERSION}"
run: |
set -euo pipefail
exact_version=missing
tagged_version=missing
for attempt in {1..12}; do
exact_version="$(npm view "${PACKAGE_NAME}@${PACKAGE_VERSION}" version 2>/dev/null || true)"
tagged_version="$(npm view "${PACKAGE_NAME}@extended-stable" version 2>/dev/null || true)"
if [[ "${exact_version}" == "${PACKAGE_VERSION}" && "${tagged_version}" == "${PACKAGE_VERSION}" ]]; then
echo "Verified ${PACKAGE_NAME}@${PACKAGE_VERSION} and @extended-stable."
exit 0
fi
if [[ "${attempt}" != "12" ]]; then
sleep 10
fi
done
echo "npm registry did not converge for ${PACKAGE_NAME}@${PACKAGE_VERSION} (exact=${exact_version:-missing}, extended-stable=${tagged_version:-missing})." >&2
echo "This OIDC-only source workflow does not mutate tags on an already-published package; use credential-isolated release tooling for manual tag repair." >&2
exit 1
Comment on lines +199 to +205
- name: Setup manifest pnpm
uses: ./.github/actions/setup-pnpm-store-cache
with:
cache-mode: restore
node-version: "24.x"

- name: Install manifest dependencies
@catomean

catomean commented Sep 3, 2026

Copy link
Copy Markdown
Collaborator Author

Failing-lane classification before merge

Anchor fact: this PR's tree is byte-identical to upstream b6306da1a9 (git diff = 0 lines), the most recent upstream main commit with a fully green upstream CI run. Therefore no failure below can be a code regression introduced by the sync; each was verified from its own job log.

Verdict: 0 real regressions. 200 lanes pass (every build / type-check / unit-shard / docs / lint lane). All 16 fails + 1 stuck-queued lane are environmental or artifacts of the PR's 29k-commit shape.

Class A β€” permanently environmental on this fork (do not chase these)

Lane Verified cause
auto-response The 'private-key' input must be set β€” upstream's GitHub App secret, absent in fork
label Same missing App private-key secret
checks-node-core-tooling-6 Tests shell out to rg; upstream's Blacksmith images ship ripgrep, fork's ubuntu-24.04 fallback (runs-on gates Blacksmith on github.repository == 'openclaw/openclaw') does not
checks-node-core-tooling-7 full-release-validation-state.test.ts fixtures hardcode repository: "openclaw/openclaw" while the script reads real GITHUB_REPOSITORY β†’ provenance_mismatch on any fork
ios-screenshots-iphone / ios-screenshots-ipad-13 No Apple Team ID signing env + WebRTC-M151.xcframework.zip download 404 from fork runner
Scan iOS dead code Same iOS build environment (no Team ID); scan artifact is 1060 bytes = produced nothing
Intersect shared OpenClawKit dead code Downstream consumer: "iOS Periphery scan exited with status 1"
check-arm Queued forever on blacksmith-16vcpu-ubuntu-2404-arm β€” runner label the fork does not have
CodeQL "53 new alerts … code changes were too large": diff-attribution over the 29k-commit range onto upstream's own code; fork also has no code-scanning baseline yet

Class Aβ€² β€” one-time artifacts of a 29k-commit sync PR (self-heal once this IS main)

Lane Verified cause
security-fast Bounded range fetch (PR_COMMIT_COUNT capped at 10000) timed out, exit 124
check-guards test-temp-creations scans the PR diff = the entire 3-month upstream delta
actionlint zizmor loads trusted configs from the BASE branch (3-month-old fork main) and lints the new workflows with them
checks-fast-bundled-protocol since:-stamp freshness is base-relative: every method upstream added in 3 months demands a 2026.8 stamp
Scan changed paths (precise) opengrep over the full changed set, cancelled at ~30 min, no SARIF produced
Validate provider scaffold TS7016 on packed plugin-sdk declarations; upstream passes this lane continuously on the same code β†’ environmental/base-relative. Observe post-merge
openclaw/ci-gate Aggregate gate; red only because siblings above are red

Merging with a merge commit (not squash) so future upstream syncs share history.

πŸ€– Generated with Claude Code

https://claude.ai/code/session_01WqKqMnHQHSmkGFfc5t7Rxn

@catomean
catomean merged commit bea8e78 into main Sep 3, 2026
229 of 246 checks passed
@catomean
catomean deleted the sync/upstream-2026-09-02 branch September 3, 2026 09:44
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.