Repository navigation
OpenClaw 2026.8.1 alignment - #86
Merged
Merged
Conversation
… SQLite, provider merge Pin bumped 2026.7.1 → 2026.8.1 with every break the source diff surfaced, each verified against the v2026.8.1 tag: - agents.entries roster: all writers emit the keyed map (no id in entry body) with agents.ownership=explicit and delete any legacy agents.list — a leftover list next to entries fails the strict schema and takes the gateway down. Agent removal now rides the locked config.patch RPC (null-keyed map delete) instead of a raw file edit. - Headless plugin installs: --accept-capabilities everywhere (no TTY = no consent handler at 2026.8.1), --force for non-ClawHub npm sources. Without this every fresh agent install aborts at the provision-web step and Bedrock/ByteRover installs fail silently behind || true. - openai-codex provider id merged upstream into openai: auth login, auth order set, and model refs all renamed (device-code method unchanged). - Session store moved to per-agent SQLite: upgrade paths run openclaw doctor --fix between package swap and gateway restart (the gateway refuses to boot while a legacy sessions.json exists), plus a one-time plugins update --all --accept-capabilities. Session browser now reads sessions.list/chat.history RPCs; agent stats read sessions.list for tokens and count transcript *.jsonl directly. - Browser profiles: color field dropped (strict schema rejects it). - provisiond 0.5.1: relay requests operator.admin (immunizes chat streaming against 2026.8.1's canReceiveSessionEvent filter if gateway.roles is ever set) and sessions.list pagination pages on row count — nextOffset/hasMore never existed, sync was capped at 100. - Gateway systemd unit: OPENCLAW_SUPERVISOR_MODE=external so the daemon defers lifecycle to systemd and never self-updates off the fleet pin. - VerifyAgentChannelsJob accepts both roster shapes during migration. 1148 core tests green; provisiond 41/41.
…d mounts, doctor ordering, plugin consent repair
Every fix below was discovered by running the full upgrade + fresh-agent
E2E on a live DO droplet (7.1 box → fleet updater → 8.1 → agent install →
streamed chat verified in the dashboard):
- env block: 2026.8.1's strict root schema is {shellEnv, vars} — flat
provider keys fail validation and take the gateway down. All writers now
emit env.vars and migrate legacy flat keys.
- memory search moved to the root memory.search key (agents.defaults.
memorySearch is rejected); the query.hybrid tuning block was retired
upstream, as were compaction.reserveTokensFloor and
contextPruning.keepLastAssistants — all dropped from our defaults.
- Persistent-volume dirs are now BIND MOUNTS, not symlinks: the 8.1
SQLite session import refuses symbolic-link path components, which
bricked the doctor migration on our layout. Fresh installs mount, and
both upgrade paths convert symlink → bind mount idempotently.
- Doctor migration ordering: the gateway must be STOPPED while doctor
runs — a live (even crash-looping) gateway owns the state-dir lock and
doctor silently skips automatic state migrations. Both upgrade paths
now stop → doctor --fix → update repair --accept-capabilities → start.
- 'openclaw update repair --accept-capabilities' added: bundled plugins
(perplexity) can lack recorded capability consent after upgrade and the
gateway refuses readiness ('plugin verification failed').
- OPENCLAW_SUPERVISOR_MODE=external REVERTED: the 8.1 CLI honors it by
refusing 'openclaw update' entirely, which would break every future
fleet pin bump.
- Fleet updater self-heal: when the binary already matches the pin but
the gateway is down (interrupted earlier run), run the doctor repair
instead of declaring convergence. Long SSH execs get explicit timeouts
(the 30s default left phpseclib channels poisoned mid-update).
- OpenClawDriver verifier now accepts the agents.entries roster (the
optional-chained agents?.list read dodged the review grep).
- provision-web install check accepts 2026.8.1's bare package dir name
(the __openclaw-generation__ suffix is gone).
Full suite: 1147 passed. Live E2E: legacy sessions.json migrated into
SQLite with data intact (visible in the session browser), agent installed
on 8.1 with consent flags, chat streamed end-to-end.
Contributor
Author
🤖 AI token usage for
|
…efaults The completion/error events are what re-enable the chat composer — riding the queued broadcasts lane left seconds of dead air after the final streamed token (deltas already broadcast inline since #84). All chat conversation events now ShouldBroadcastNow. sqlite connections default to WAL journal mode with a 5s busy timeout so concurrent Horizon workers and web requests wait for the write lock instead of throwing 'database is locked' (local dev + Docker; prod MySQL unaffected). Both env-overridable.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Bumps the OpenClaw pin 2026.7.1 → 2026.8.1 and fixes every break a source-verified gap review (five parallel review passes over the v2026.7.1..v2026.8.1 tag diff) surfaced in our integration surface.
Breaks fixed (all verified against the 2026.8.1 source)
agents.list→agents.entries— the strict 2026.8.1 schema rejects the legacy list next to entries and requires explicit ownership on multi-agent rosters. All writers (install script, full-config rebuild, config.patch service) now emit the keyed map, delete any leftoverlist, and setownership: explicit. Removal rides the locked RPC via null-keyed map delete.--accept-capabilities(no TTY = no consent handler) and--forcefor non-ClawHub npm sources. Previously: fresh agent installs hard-aborted at the provision-web step; ByteRover + both Bedrock providers failed silently behind|| true(BYO-AWS servers would provision with no Bedrock provider).openai-codexprovider id removed upstream — renamed toopenaiin the device-code login, auth order set, and model refs (ChatGPT-subscription BYO flow).openclaw doctor --fixbetween package swap and restart + a one-timeplugins update --all --accept-capabilities. Session browser rebuilt onsessions.list/chat.historyRPCs; SyncAgentStatsJob reads tokens fromsessions.listand counts transcript*.jsonlfiles (which remain on disk).color— rejected by the strict schema; dropped from both writers.Hardening
operator.admin(short-circuits the newcanReceiveSessionEventfilter — without it a futuregateway.roleswrite silently kills chat streaming) and fixes sessions.list pagination (nextOffset/hasMorenever existed; sync was silently capped at 100 sessions).OPENCLAW_SUPERVISOR_MODE=externalin the gateway systemd unit — no double supervision, no self-updates off the fleet pin.Verified-safe (no changes needed)
paste-api-key SQLite injection, loopback pairing bypass (#95997), provider/model schema incl. both Bedrock overlays, chat.send fast-send shape, streaming delta events, config.patch baseHash round-trip, installer env contract (OPENCLAW_VERSION/NO_PROMPT/NO_ONBOARD),
--versionparsing, gateway install auth gate (loopback+token passes).Tests
Rollout
Needs a live droplet E2E before merge (fresh provision + in-place 7.1→8.1 upgrade + chat/skills/plugin checks) — the plugin-consent and doctor-migration paths are multi-layer and were reviewed statically.
Companion PRs: provision-skills (strict YAML frontmatter gate), provision-openclaw-web (channel-contract import + SDK bump).