Skip to content

Release v3.1.11 β€” promote beta to main - #281

Merged
yalexx merged 1 commit into
mainfrom
promote/v3.1.11-to-main
Jul 28, 2026
Merged

Release v3.1.11 β€” promote beta to main#281
yalexx merged 1 commit into
mainfrom
promote/v3.1.11-to-main

Conversation

@yalexx

@yalexx yalexx commented Jul 28, 2026

Copy link
Copy Markdown
Collaborator

Promotes beta (aeb34cd) to main for the v3.1.11 release.

The merge conflicted in 6 files because #264 landed the 3.1.10 gateway-recovery work on main as a squash while the same work kept evolving on beta. Every conflict resolved to the beta side β€” the resulting tree is byte-identical to origin/beta, i.e. exactly the code verified on hardware today.

What ships

Hardware verification β€” 2026-07-28, boxes .52 and todor

Test Result
HTML/Cloudflare failure reproduced on old build β†’ update fixed
401 profile=- auth failure reproduced β†’ update fixed
Forced OAuth token rotation Γ—2, both boxes codex survived both
3.1.10 β†’ 3.1.11 via shipped updater pass
3.1.5 β†’ 3.1.11 via shipped updater incl. reboot pass, ~4 min
CI: 1499 unit tests, E2E, E2E-install (real systemd) green

Known, not a regression

The Codex model picker offers gpt-5.4/gpt-5.4-mini, which free-tier ChatGPT accounts cannot run β€” upstream 400s with no failover. Present in 3.1.10 already; default is gpt-5.5, which every tier runs, so it only bites a user who picks an older model by hand. Fix queued for 3.1.12.

Merges beta into main for the 3.1.11 release. The conflicts came from #264
(the 3.1.10 gateway-recovery squash landing on main) diverging from the same
work as it evolved on beta; every one resolved to the beta side. The
resulting tree is byte-identical to origin/beta -- the exact code verified
on hardware today.

What ships:

- codex: route codex turns through the app-server harness (#280). Without
  agentRuntime, core posts to /backend-api/responses -- a browser endpoint
  Cloudflare challenges -- and every turn dies with an HTML error page.
- codex: restore the credential #278 broke, and migrate legacy auth profiles
  into the sqlite store core actually reads (#279).
- codex: stop mirroring the rotating refresh token into every codex-home, so
  a single-use refresh token cannot be spent twice (#278).
- codex: default ChatGPT auth to gpt-5.5; unblock GPT-5.6 for entitled
  accounts (#275, #276).
- gateway: stop update/boot from bricking the box; parameterised health and
  recovery waits.
- memory: local embeddings so semantic memory works without an API key.
- docs/site: point references at clawbox.com; measured Wi-Fi and local-model
  performance figures.

Hardware verification (2026-07-28, boxes .52 and todor):

- HTML/Cloudflare failure reproduced on the old build, fixed by the update
- 401 profile=- auth failure reproduced, fixed by the update
- forced OAuth token rotation x2 on both boxes -- codex survived both
- 3.1.10 -> 3.1.11 through the shipped updater: pass
- 3.1.5 -> 3.1.11 through the shipped updater incl. reboot: pass, ~4 min
- CI: 1499 unit tests, E2E, E2E-install in a real systemd container

Known, not a regression (present in 3.1.10, fix queued for 3.1.12): the Codex
model picker offers gpt-5.4/gpt-5.4-mini, which free-tier ChatGPT accounts
cannot run -- upstream 400s with no failover. The default is gpt-5.5, which
every tier runs, so this only bites a user who picks an older model by hand.
@yalexx
yalexx requested a review from a team as a code owner July 28, 2026 18:22
@coderabbitai

coderabbitai Bot commented Jul 28, 2026

Copy link
Copy Markdown

Warning

Review limit reached

You’ve reached a temporary PR review limit under our Fair Usage Limits Policy.

Your recent review volume is higher than typical usage, so adaptive limits are currently applied.

Next review available in: 2 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
βš™οΈ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: d1ce77bb-28f4-4b83-80ef-d81b534a5c12

πŸ“₯ Commits

Reviewing files that changed from the base of the PR and between 280ed5e and ac56edc.

πŸ“’ Files selected for processing (55)
  • .github/workflows/docs-deploy.yml
  • .github/workflows/e2e-install.yml
  • .github/workflows/e2e-tests.yml
  • .github/workflows/issue-triage.yml
  • .github/workflows/pr-review.yml
  • .github/workflows/pr-tests-coverage.yml
  • README.md
  • config/clawbox-codex-auth-sync.service
  • config/clawbox-codex-auth-sync.timer
  • config/clawbox-gateway.service
  • config/clawbox-root-update@.service
  • docs-site/README.md
  • docs-site/docs.json
  • docs-site/hardware/clawbox-connect.mdx
  • docs-site/hardware/clawbox-workstation.mdx
  • docs-site/hardware/requirements.mdx
  • docs-site/llms.txt
  • docs-site/setup/openclaw-setup.mdx
  • docs-site/support/faq.mdx
  • e2e-install/80-chat.spec.ts
  • e2e/first-load-mascot-layout.spec.ts
  • install.sh
  • package.json
  • public/sw.js
  • scripts/codex-auth-mirror.js
  • scripts/gateway-pre-start.sh
  • scripts/issue-triage.mjs
  • scripts/migrate-auth-profiles.js
  • scripts/pr-review.mjs
  • src/app/page.tsx
  • src/app/setup-api/ai-models/catalog/route.ts
  • src/app/setup-api/ai-models/configure/route.ts
  • src/app/setup-api/chat/model/route.ts
  • src/app/setup-api/llamacpp/install/route.ts
  • src/components/ChatPopup.tsx
  • src/components/Mascot.tsx
  • src/lib/ai-provider-progress.ts
  • src/lib/chat-reasoning.ts
  • src/lib/codex-model-probe.ts
  • src/lib/mascot-phrases-server.ts
  • src/lib/provider-models.ts
  • src/lib/updater.ts
  • src/tests/routes/ai-models/configure.test.ts
  • src/tests/routes/chat-model.test.ts
  • src/tests/routes/llamacpp/install.test.ts
  • src/tests/unit/ai-provider-progress.test.ts
  • src/tests/unit/chat-reasoning.test.ts
  • src/tests/unit/codex-auth-mirror.test.ts
  • src/tests/unit/codex-model-probe.test.ts
  • src/tests/unit/gateway-pre-start-codex-models.test.ts
  • src/tests/unit/gateway-pre-start-codex-runtime.test.ts
  • src/tests/unit/install-post-update-units.test.ts
  • src/tests/unit/migrate-auth-profiles.test.ts
  • src/tests/unit/provider-models.test.ts
  • src/tests/unit/updater.test.ts
✨ Finishing Touches
πŸ§ͺ Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch promote/v3.1.11-to-main

Comment @coderabbitai help to get the list of available commands.

@github-actions

Copy link
Copy Markdown

πŸ¦€ ClawReview

Fresh PR washed in with the tide β€” here's the gist.

Promotes beta (aeb34cd) to main as the v3.1.11 release, resolving six merge conflicts by taking the beta side throughout β€” the resulting tree is byte-for-byte what has been running on verified hardware. The headline fixes are: routing Codex turns through the app-server harness so they reach the real Codex API instead of a Cloudflare-challenged browser endpoint; eliminating the double-rotator OAuth bug that burned ChatGPT refresh-token families within hours of a login; and adding a new systemd timer that keeps credential mirrors fresh between reboots. Also ships local embeddings for semantic memory (no API key required) and migrates every clawbox.tech reference to clawbox.com.

At a glance

  • πŸ”§ Fix Β· touches Codex/ChatGPT auth (codex-auth-mirror, migrate-auth-profiles, new systemd timer), gateway boot/pre-start path, install.sh update flow, systemd unit files, docs site domain migration
  • Base branch: main Β· +1569 source / +1284 tests across 55 files Β· (large diff β€” summarized from the first 80k)
  • 🟑 targets main but touches device code β€” convention is beta-first (main carries tagged releases)
  • 🟑 package.json dependencies changed without bun.lock β€” CI runs bun install --frozen-lockfile and will fail
  • 🟑 title doesn't follow type: description (feat/fix/chore/docs/…)
  • βœ… source changes come with test changes
  • 🟑 large PR (3126 lines changed) β€” consider splitting
  • ℹ️ touches security-sensitive paths (.github/workflows/docs-deploy.yml, .github/workflows/e2e-install.yml, .github/workflows/e2e-tests.yml, .github/workflows/issue-triage.yml, …) β€” review with extra care

πŸ”Ž Heads-up: this looks related to #273 β€” PR #273 is titled 'Correct Wi-Fi spec and local-model performance in hardware docs'; this PR includes exactly those corrections (Wi-Fi 5 vs Wi-Fi 6, measured tok/s figures, tegrastats methodology note) in clawbox-connect.mdx and requirements.mdx. #273 is likely superseded by or already merged into this release.

Good to know

  • 🟑 Two new systemd units land on every customer device: clawbox-codex-auth-sync.service (oneshot credential mirror) and its .timer (fires every 10 min). install.sh enables them immediately on upgrade, not just on fresh install.
  • 🟑 step_post_update now re-runs step_systemd_services on every in-app update, so future unit-file changes reach existing boxes automatically β€” this is new behavior on the live customer update path.
  • 🟑 package.json bumped to 3.1.11 but bun.lock does not appear in the diff; CI runs bun install --frozen-lockfile and will fail if the lockfile is out of sync.
  • ℹ️ Docs-site domain migration: every clawbox.tech URL (CI CNAME, docs.json, llms.txt, MDX pages, README) is now clawbox.com β€” large but mechanical sweep.

β€” ClawReview πŸ¦€, scuttling off. General info only β€” see CodeRabbit for the detailed review. Conventions: docs.

@github-actions github-actions Bot added area: ci-e2e Auto-triage area area: docs Auto-triage area area: install Auto-triage area labels Jul 28, 2026
@github-actions

github-actions Bot commented Jul 28, 2026

Copy link
Copy Markdown

CI Summary

βœ… Tests

  • Result: passed
  • View run
  • Coverage: statements 70.34%, branches 60.26%, functions 65.71%, lines 72.32%

βœ… E2E

βœ… E2E Install

@yalexx
yalexx merged commit 8cb6a43 into main Jul 28, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: ci-e2e Auto-triage area area: docs Auto-triage area area: install Auto-triage area

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant