Peter Steinberger
0fe2132d5f
feat(mac): gate Peekaboo Bridge on Computer Control ( #106531 )
...
Both settings grant local UI automation, so run PeekabooBridge only while
Allow Computer Control is on. The toggle now reflects the effective state and
is disabled when Computer Control is off; users drive Peekaboo via its own Mac
app in that case. Removes the confusing standalone bridge switch.
2026-07-13 08:56:27 -07:00
Vincent Koc
f33ab243cf
fix(sqlite): reject runtimes vulnerable to WAL corruption ( #106065 )
...
* fix(sqlite): require WAL-reset-safe Node runtime
* docs(sqlite): document safe Node runtime floor
* fix(sqlite): defer runtime library validation until use
* fix(ci): align startup memory with Node 24.15
2026-07-13 13:59:00 +08:00
Peter Steinberger
c6dc5bc764
fix(canvas): hosted pages fail on macOS with scoped Gateway auth ( #105336 )
...
* fix(canvas): harden hosted Canvas on macOS
Resolve Gateway-hosted Canvas and A2UI targets through refreshed node capabilities, keep bridge and live-reload behavior correct, and restrict native action dispatch to the exact trusted main-frame document.
Preserve scalar evaluation results, secure action IDs, and hidden state-directory watching.
Co-authored-by: GuoJiaming <804436395@qq.com >
Co-authored-by: Lucenx9 <185146821+Lucenx9@users.noreply.github.com >
Co-authored-by: zeng-weihan <ceng.weihan@xydigit.com >
* chore(canvas): defer release note
* chore(canvas): refresh native i18n inventory
* refactor(canvas): isolate hosted surface resolution
---------
Co-authored-by: GuoJiaming <804436395@qq.com >
Co-authored-by: Lucenx9 <185146821+Lucenx9@users.noreply.github.com >
Co-authored-by: zeng-weihan <ceng.weihan@xydigit.com >
2026-07-12 13:02:27 +01:00
Peter Steinberger
a40e43e46e
feat(mac): redesign the menu bar critter to match the mascot ( #104846 )
...
* feat(mac): redesign menu bar critter to match the mascot
* fix(mac): draw happy-eye arcs upward and guard stale celebration expiry
* docs(mac): update menu bar icon states for critter redesign
* fix(mac): own celebration expiry with a start-only generation counter
* fix(mac): give voice-wake antennae real headroom at 18pt
2026-07-12 06:35:02 +01:00
pick-cat
3d3796243f
docs(gateway): add launchd supervisor loop troubleshooting ( #89816 )
...
* docs(gateway): add launchd supervisor loop troubleshooting
* docs(gateway): warn before disabling node LaunchAgent
* chore: trigger CI after rebase onto main
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
* docs(gateway): modernize launchd recovery runbook
---------
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-11 15:59:12 -07:00
Peter Steinberger
3bec587d74
fix(computer): stop typing after cancellation ( #103528 )
2026-07-10 08:37:37 +01:00
Peter Steinberger
461772868d
fix(computer): prevent stale, replayed, and post-cancel desktop actions ( #103422 )
...
* fix(ai): preserve streamed tool-call identity
* fix(computer): bind actions to current tool authority
* fix(macos): serialize computer control lifecycle
* docs(computer): document hardened control contract
* chore: follow release-owned changelog policy
* test(agents): cover node list cancellation
2026-07-10 06:47:56 +01:00
Peter Steinberger
f8dbd34ab8
feat(nodes): add computer use (computer.act) on macOS nodes via Peekaboo ( #102776 )
...
* feat(nodes): add computer use (computer.act) on macOS nodes via Peekaboo
* fix(nodes): release held computer.act input on node disconnect/stop/disable
* fix(nodes): release held computer.act input armed after a lifecycle release
* fix(nodes): scope computer.act lifecycle catch-up release to the arming action
* chore(nodes): register computer tool display metadata, sync native i18n, doc-comment constants
* fix(nodes): preserve caught-error cause in computer tool resolver; regen docs map
2026-07-09 15:28:09 +01:00
Peter Steinberger
bb658d0a6d
feat(macos): redesign chat window as native shell with sessions sidebar, toolbar pickers, slash commands, and context usage ( #101103 )
...
* feat(chat-ui): native macOS chat window shell with sessions sidebar, context usage, and slash commands
* feat(macos): host redesigned chat window shell and complete gateway chat transport
* fix(chat-ui): gate slash panel on catalog support and register window shell shortcuts outside menus
* fix(chat-ui): make sidebar selection tags optional and sync programmatic composer text into the focused NSTextView
* fix(macos): track in-window session switches for chat window reuse
* fix(chat-ui): re-bootstrap in place when deleting the active main session
* docs(macos): describe the redesigned native chat window
* fix(macos): scope bare global session RPCs to the routing default agent
* style(chat-ui): restore blank line between rebased helpers
* fix(macos): scope selected global session actions
* fix(macos): refresh chat routing identity
* fix(chat-ui): hide delete for main sessions
* fix(macos): remove duplicate session patch path
* fix(chat-ui): resolve sidebar session aliases
* fix(chat-ui): isolate sidebar alias resolution
* fix(chat-ui): reconcile active session aliases
* fix(chat-ui): prefer selected session aliases
* chore(i18n): refresh chat window inventory
* fix(chat-ui): return sidebar filter result
* refactor(chat-ui): split session actions
2026-07-07 02:06:10 +01:00
Peter Steinberger
d537139521
feat(macos): adopt the shared read-only chat transcript cache ( #100275 )
...
* feat(macos): adopt shared read-only chat transcript cache
Cache-first cold open for the macOS chat window/panel: the last known
transcript and session list paint immediately from the shared SQLite
transcript cache, then live gateway history replaces them wholesale.
Recent chats stay browsable read-only while the gateway is unreachable;
sending remains gated by connection state.
- Wires OpenClawChatSQLiteTranscriptCache into WebChatSwiftUIWindowController;
DB at ~/Library/Application Support/OpenClaw/chat-cache.sqlite.
- Gateway identity (MacChatTranscriptCache.gatewayID), derivable offline:
local keys on the canonical gateway state dir; remote/direct keys on the
full canonical URL (scheme, host, resolved port, percent-encoded
path/query); remote/ssh keys on the SSH target plus the resolved remote
gateway port, mirroring the tunnel port resolution. Unconfigured mode
gets no cache.
- macOS file protection: no per-file Data Protection classes; iOS-only
attribute stays gated behind #if os(iOS) in the shared store, and the
per-user container plus FileVault protect at rest.
- Onboarding chat stays uncached (transient guided setup session).
Part of #100194
* feat(macos): wire the offline command outbox into chat windows
* style(macos): fix orphaned doc comment; regenerate docs map
* style(macos): doc-comment lint fix; regenerate docs map on current main
2026-07-06 05:57:16 +01:00
Peter Steinberger
f7d7148cf0
docs: rewrite published docs grounded in current source ( #100142 )
...
Source-grounded rewrite of 529 published docs pages with per-unit information-loss verification: 1,713 factual corrections cited to src/**, generated surfaces regenerated, frontmatter titles preserved for i18n, release notes pages untouched. All docs gates green.
Closes #100141
2026-07-05 00:32:47 -04:00
Peter Steinberger
6a7b62889e
feat(macos): install and run the local Gateway automatically ( #99767 )
...
* feat(macos): automate local gateway setup
* fix(macos): auto-approve the local Mac node
* chore(macos): refresh generated setup metadata
* chore(macos): refresh generated setup metadata
* chore(macos): refresh generated setup metadata
* chore(macos): refresh generated setup metadata
* chore(macos): refresh generated setup metadata
2026-07-03 22:09:56 -07:00
Peter Steinberger
af420dbee5
fix(macos): remote mode fails with managed SSH aliases ( #99661 )
...
* fix(macos): support managed SSH aliases safely
* test(macos): serialize gateway state isolation
2026-07-03 15:19:01 -07:00
Dallin Romney
7bbd09047b
docs: simplify macOS app overview ( #97120 )
...
* docs: simplify macOS app docs
* docs: preserve macOS app detail links
* docs: address macOS review feedback
2026-06-27 16:04:30 -07:00
Dallin Romney
2db65e5778
fix(macos): clarify unsupported voice wake UI ( #91754 )
2026-06-10 15:59:03 -07:00
Josh Avant
154f439c81
Add operator install policy and remove dangerous-code install scanners ( #89516 )
...
* feat: add operator install policy
* test: cover plain-file plugin install code
* fix: preserve locationless install policy findings
* refactor: remove install-time plugin scanner
* test: remove stale plugin install helper
* fix: preserve before-install builtin scan type
* fix: preserve plugin dependency denylist
---------
Co-authored-by: Mainframe <mainframe@MainfraacStudio.localdomain >
2026-06-03 14:17:29 -07:00
Peter Steinberger
bb5010b89a
docs: absorb docs sweep
...
Co-authored-by: Kai <kai@itskai.dev >
Co-authored-by: Weihang <gwh7078@163.com >
Co-authored-by: Scott Long <longstoryscott@gmail.com >
Co-authored-by: moejaberr <mjaber@uoguelph.ca >
Co-authored-by: huihui0822 <109355071+huihui0822@users.noreply.github.com >
2026-05-22 21:52:01 +01:00
Peter Steinberger
f7196e3b53
build: update pi dependencies to 0.75.1
2026-05-18 06:22:36 +01:00
Peter Steinberger
ca236d098d
fix: harden gateway launchd and configure sections
2026-05-17 03:44:05 +01:00
Peter Steinberger
5b383af736
feat: add native mac dashboard window
2026-05-16 23:49:18 +01:00
Val Alexander
6a41a54212
fix(macos): harden direct gateway TLS pinning
...
Summary:
- Require macOS system trust before saving and accepting first-use direct `wss://` gateway TLS pins.
- Honor `gateway.remote.tlsFingerprint` in macOS direct node-mode TLS params.
- Add focused Swift coverage and update remote gateway docs/changelog.
Verification:
- Local: swiftformat --lint on touched Swift files.
- Local: git diff --check HEAD~1..HEAD.
- Local: swift test --package-path apps/shared/OpenClawKit --filter GatewayTLSPinningTests.
- Local: swift test --package-path apps/macos --filter 'MacNodeModeCoordinatorTests|GatewayEndpointStoreTests'.
- Local: PATH=/Users/buns/.nvm/versions/node/v24.13.0/bin:$PATH pnpm docs:list.
- CI: macos-node, macos-swift, check-docs, security-fast, security-scm-fast, security-dependency-audit, Opengrep OSS, and changed-path checks passed on PR head cf383fc047 .
Fixes #50642 .
Supersedes #50643 .
2026-05-13 21:30:22 -05:00
Peter Steinberger
694ca50e97
Revert "refactor: move runtime state to SQLite"
...
This reverts commit f91de52f0d .
2026-05-13 13:33:38 +01:00
Peter Steinberger
f91de52f0d
refactor: move runtime state to SQLite
...
* refactor: remove stale file-backed shims
* fix: harden sqlite state ci boundaries
* refactor: store matrix idb snapshots in sqlite
* fix: satisfy rebased CI guardrails
* refactor: store current conversation bindings in sqlite table
* refactor: store tui last sessions in sqlite table
* refactor: reset sqlite schema history
* refactor: drop unshipped sqlite table migration
* refactor: remove plugin index file rollback
* refactor: drop unshipped sqlite sidecar migrations
* refactor: remove runtime commitments kv migration
* refactor: preserve kysely sync result types
* refactor: drop unshipped sqlite schema migration table
* test: keep session usage coverage sqlite-backed
* refactor: keep sqlite migration doctor-only
* refactor: isolate device legacy imports
* refactor: isolate push voicewake legacy imports
* refactor: isolate remaining runtime legacy imports
* refactor: tighten sqlite migration guardrails
* test: cover sqlite persisted enum parsing
* refactor: isolate legacy update and tui imports
* refactor: tighten sqlite state ownership
* refactor: move legacy imports behind doctor
* refactor: remove legacy session row lookup
* refactor: canonicalize memory transcript locators
* refactor: drop transcript path scope fallbacks
* refactor: drop runtime legacy session delivery pruning
* refactor: store tts prefs only in sqlite
* refactor: remove cron store path runtime
* refactor: use cron sqlite store keys
* refactor: rename telegram message cache scope
* refactor: read memory dreaming status from sqlite
* refactor: rename cron status store key
* refactor: stop remembering transcript file paths
* test: use sqlite locators in agent fixtures
* refactor: remove file-shaped commitments and cron store surfaces
* refactor: keep compaction transcript handles out of session rows
* refactor: derive transcript handles from session identity
* refactor: derive runtime transcript handles
* refactor: remove gateway session locator reads
* refactor: remove transcript locator from session rows
* refactor: store raw stream diagnostics in sqlite
* refactor: remove file-shaped transcript rotation
* refactor: hide legacy trajectory paths from runtime
* refactor: remove runtime transcript file bridges
* refactor: repair database-first rebase fallout
* refactor: align tests with database-first state
* refactor: remove transcript file handoffs
* refactor: sync post-compaction memory by transcript scope
* refactor: run codex app-server sessions by id
* refactor: bind codex runtime state by session id
* refactor: pass memory transcripts by sqlite scope
* refactor: remove transcript locator cleanup leftovers
* test: remove stale transcript file fixtures
* refactor: remove transcript locator test helper
* test: make cron sqlite keys explicit
* test: remove cron runtime store paths
* test: remove stale session file fixtures
* test: use sqlite cron keys in diagnostics
* refactor: remove runtime delivery queue backfill
* test: drop fake export session file mocks
* refactor: rename acp session read failure flag
* refactor: rename acp row session key
* refactor: remove session store test seams
* refactor: move legacy session parser tests to doctor
* refactor: reindex managed memory in place
* refactor: drop stale session store wording
* refactor: rename session row helpers
* refactor: rename sqlite session entry modules
* refactor: remove transcript locator leftovers
* refactor: trim file-era audit wording
* refactor: clean managed media through sqlite
* fix: prefer explicit agent for exports
* fix: use prepared agent for session resets
* fix: canonicalize legacy codex binding import
* test: rename state cleanup helper
* docs: align backup docs with sqlite state
* refactor: drop legacy Pi usage auth fallback
* refactor: move legacy auth profile imports to doctor
* refactor: keep Pi model discovery auth in memory
* refactor: remove MSTeams legacy learning key fallback
* refactor: store model catalog config in sqlite
* refactor: use sqlite model catalog at runtime
* refactor: remove model json compatibility aliases
* refactor: store auth profiles in sqlite
* refactor: seed copied auth profiles in sqlite
* refactor: make auth profile runtime sqlite-addressed
* refactor: migrate hermes secrets into sqlite auth store
* refactor: move plugin install config migration to doctor
* refactor: rename plugin index audit checks
* test: drop auth file assumptions
* test: remove legacy transcript file assertions
* refactor: drop legacy cli session aliases
* refactor: store skill uploads in sqlite
* refactor: keep subagent attachments in sqlite vfs
* refactor: drop subagent attachment cleanup state
* refactor: move legacy session aliases to doctor
* refactor: require node 24 for sqlite state runtime
* refactor: move provider caches into sqlite state
* fix: harden virtual agent filesystem
* refactor: enforce database-first runtime state
* refactor: rename compaction transcript rotation setting
* test: clean sqlite refactor test types
* refactor: consolidate sqlite runtime state
* refactor: model session conversations in sqlite
* refactor: stop deriving cron delivery from session keys
* refactor: stop classifying sessions from key shape
* refactor: hydrate announce targets from typed delivery
* refactor: route heartbeat delivery from typed sqlite context
* refactor: tighten typed sqlite session routing
* refactor: remove session origin routing shadow
* refactor: drop session origin shadow fixtures
* perf: query sqlite vfs paths by prefix
* refactor: use typed conversation metadata for sessions
* refactor: prefer typed session routing metadata
* refactor: require typed session routing metadata
* refactor: resolve group tool policy from typed sessions
* refactor: delete dead session thread info bridge
* Show Codex subscription reset times in channel errors (#80456 )
* feat(plugin-sdk): consolidate session workflow APIs
* fix(agents): allow read-only agent mount reads
* [codex] refresh plugin regression fixtures
* fix(agents): restore compaction gateway logs
* test: tighten gateway startup assertions
* Redact persisted secret-shaped payloads [AI] (#79006 )
* test: tighten device pair notify assertions
* test: tighten hermes secret assertions
* test: assert matrix client error shapes
* test: assert config compat warnings
* fix(heartbeat): remap cron-run exec events to session keys (#80214 )
* fix(codex): route btw through native side threads
* fix(auth): accept friendly OpenAI order for Codex profiles
* fix(codex): rotate auth profiles inside harness
* fix: keep browser status page probe within timeout
* test: assert agents add outputs
* test: pin cron read status
* fix(agents): avoid Pi resource discovery stalls
Co-authored-by: dataCenter430 <titan032000@gmail.com >
* fix: retire timed-out codex app-server clients
* test: tighten qa lab runtime assertions
* test: check security fix outputs
* test: verify extension runtime messages
* feat(wake): expose typed sessionKey on wake protocol + system event CLI
* fix(gateway): await session_end during shutdown drain and track channel + compaction lifecycle paths (#57790 )
* test: guard talk consult call helper
* fix(codex): scale context engine projection (#80761 )
* fix(codex): scale context engine projection
* fix: document Codex context projection scaling
* fix: document Codex context projection scaling
* fix: document Codex context projection scaling
* fix: document Codex context projection scaling
* chore: align Codex projection changelog
* chore: realign Codex projection changelog
* fix: isolate Codex projection patch
---------
Co-authored-by: Eva (agent) <eva+agent-78055@100yen.org >
Co-authored-by: Josh Lehman <josh@martian.engineering >
* refactor: move agent runtime state toward piless
* refactor: remove cron session reaper
* refactor: move session management to sqlite
* refactor: finish database-first state migration
* chore: refresh generated sqlite db types
* refactor: remove stale file-backed shims
* test: harden kysely type coverage
# Conflicts:
# .agents/skills/kysely-database-access/SKILL.md
# src/infra/kysely-sync.types.test.ts
# src/proxy-capture/store.sqlite.test.ts
# src/state/openclaw-agent-db.test.ts
# src/state/openclaw-state-db.test.ts
* refactor: remove cron store path runtime
* refactor: keep compaction transcript handles out of session rows
* refactor: derive embedded transcripts from sqlite identity
* refactor: remove embedded transcript locator handoff
* refactor: remove runtime transcript file bridges
* refactor: remove transcript file handoffs
* refactor: remove MSTeams legacy learning key fallback
* refactor: store model catalog config in sqlite
* refactor: use sqlite model catalog at runtime
# Conflicts:
# docs/cli/secrets.md
# docs/gateway/authentication.md
# docs/gateway/secrets.md
* fix: keep oauth sibling sync sqlite-local
# Conflicts:
# src/commands/onboard-auth.test.ts
* refactor: remove task session store maintenance
# Conflicts:
# src/commands/tasks.ts
* refactor: keep diagnostics in state sqlite
* refactor: enforce database-first runtime state
* refactor: consolidate sqlite runtime state
* Show Codex subscription reset times in channel errors (#80456 )
* fix(codex): refresh subscription limit resets
* fix(codex): format reset times for channels
* Update CHANGELOG with latest changes and fixes
Updated CHANGELOG with recent fixes and improvements.
* fix(codex): keep command load failures on codex surface
* fix(codex): format account rate limits as rows
* fix(codex): summarize account limits as usage status
* fix(codex): simplify account limit status
* test: tighten subagent announce queue assertion
* test: tighten session delete lifecycle assertions
* test: tighten cron ops assertions
* fix: track cron execution milestones
* test: tighten hermes secret assertions
* test: assert matrix sync store payloads
* test: assert config compat warnings
* fix(codex): align btw side thread semantics
* fix(codex): honor codex fallback blocking
* fix(agents): avoid Pi resource discovery stalls
* test: tighten codex event assertions
* test: tighten cron assertions
* Fix Codex app-server OAuth harness auth
* refactor: move agent runtime state toward piless
* refactor: move device and push state to sqlite
* refactor: move runtime json state imports to doctor
* refactor: finish database-first state migration
* chore: refresh generated sqlite db types
* refactor: clarify cron sqlite store keys
* refactor: remove stale file-backed shims
* refactor: bind codex runtime state by session id
* test: expect sqlite trajectory branch export
* refactor: rename session row helpers
* fix: keep legacy device identity import in doctor
* refactor: enforce database-first runtime state
* refactor: consolidate sqlite runtime state
* build: align pi contract wrappers
* chore: repair database-first rebase
* refactor: remove session file test contracts
* test: update gateway session expectations
* refactor: stop routing from session compatibility shadows
* refactor: stop persisting session route shadows
* refactor: use typed delivery context in clients
* refactor: stop echoing session route shadows
* refactor: repair embedded runner rebase imports
# Conflicts:
# src/agents/pi-embedded-runner/run/attempt.tool-call-argument-repair.ts
* refactor: align pi contract imports
* refactor: satisfy kysely sync helper guard
* refactor: remove file transcript bridge remnants
* refactor: remove session locator compatibility
* refactor: remove session file test contracts
* refactor: keep rebase database-first clean
* refactor: remove session file assumptions from e2e
* docs: clarify database-first goal state
* test: remove legacy store markers from sqlite runtime tests
* refactor: remove legacy store assumptions from runtime seams
* refactor: align sqlite runtime helper seams
* test: update memory recall sqlite audit mock
* refactor: align database-first runtime type seams
* test: clarify doctor cron legacy store names
* fix: preserve sqlite session route projections
* test: fix copilot token cache test syntax
* docs: update database-first proof status
* test: align database-first test fixtures
* docs: update database-first proof status
* refactor: clean extension database-first drift
* test: align agent session route proof
* test: clarify doctor legacy path fixtures
* chore: clean database-first changed checks
* chore: repair database-first rebase markers
* build: allow baileys git subdependency
* chore: repair exp-vfs rebase drift
* chore: finish exp-vfs rebase cleanup
* chore: satisfy rebase lint drift
* chore: fix qqbot rebase type seam
* chore: fix rebase drift leftovers
* fix: keep auth profile oauth secrets out of sqlite
* fix: repair rebase drift tests
* test: stabilize pairing request ordering
* test: use source manifests in plugin contract checks
* fix: restore gateway session metadata after rebase
* fix: repair database-first rebase drift
* fix: clean up database-first rebase fallout
* test: stabilize line quick reply receipt time
* fix: repair extension rebase drift
* test: keep transcript redaction tests sqlite-backed
* fix: carry injected transcript redaction through sqlite
* chore: clean database branch rebase residue
* fix: repair database branch CI drift
* fix: repair database branch CI guard drift
* fix: stabilize oauth tls preflight test
* test: align database branch fast guards
* test: repair build artifact boundary guards
* chore: clean changelog rebase markers
---------
Co-authored-by: pashpashpash <nik@vault77.ai >
Co-authored-by: Eva <eva@100yen.org >
Co-authored-by: stainlu <stainlu@newtype-ai.org >
Co-authored-by: Jason Zhou <jason.zhou.design@gmail.com >
Co-authored-by: Ruben Cuevas <hi@rubencu.com >
Co-authored-by: Pavan Kumar Gondhi <pavangondhi@gmail.com >
Co-authored-by: Shakker <shakkerdroid@gmail.com >
Co-authored-by: Kaspre <36520309+Kaspre@users.noreply.github.com >
Co-authored-by: dataCenter430 <titan032000@gmail.com >
Co-authored-by: Kaspre <kaspre@gmail.com >
Co-authored-by: pandadev66 <nova.full.stack@outlook.com >
Co-authored-by: Eva <admin@100yen.org >
Co-authored-by: Eva (agent) <eva+agent-78055@100yen.org >
Co-authored-by: Josh Lehman <josh@martian.engineering >
Co-authored-by: jeffjhunter <support@aipersonamethod.com >
2026-05-13 13:15:12 +01:00
Peter Steinberger
955b025697
feat: add native sqlite Kysely dialect
...
Add an owned Kysely dialect for native node:sqlite, raise the Node 22 floor to 22.16+ for StatementSync.columns(), and cover select/returning/stale insert id behavior.
2026-05-07 13:07:03 +01:00
Vincent Koc
eb4d654796
docs: typography hygiene across 6 pages (start/tools/nodes/mac/platforms)
2026-05-05 23:14:49 -07:00
Vincent Koc
6921a47562
docs: typography hygiene across 6 pages (channels/nodes/mac platforms)
2026-05-05 23:11:28 -07:00
Vincent Koc
b23232d560
docs: typography hygiene across 6 pages (mac platform + sandbox/wizard)
2026-05-05 22:25:27 -07:00
Vincent Koc
f505c84285
docs: typography hygiene across 7 high-traffic pages
2026-05-05 22:16:37 -07:00
Vincent Koc
0d73f174a9
docs: typography hygiene + 2 in-body H1 removals across 5 pages
2026-05-05 21:01:44 -07:00
Vincent Koc
68a82cb2e2
docs: typography hygiene + 2 in-body H1 removals across 6 pages
...
Replaced 60 typography characters (curly quotes, apostrophes, em/en
dashes, non-breaking hyphens) with ASCII equivalents per
docs/CLAUDE.md heading and content hygiene rules.
- docs/start/openclaw.md: 10 chars; removed the duplicate '# Building
a personal assistant with OpenClaw' H1 (Mintlify renders title from
frontmatter).
- docs/platforms/mac/remote.md: 10 chars; removed the duplicate
'# Remote OpenClaw (macOS ⇄ remote host)' H1 (the U+21C4 codepoint
and parens both produced brittle anchors).
- docs/tools/thinking.md: 10 chars
- docs/reference/templates/BOOTSTRAP.md: 10 chars (kept the in-body
'# BOOTSTRAP.md - Hello, World' heading because the page is a
template whose content is meant to be copied verbatim into a
workspace BOOTSTRAP.md).
- docs/plugins/sdk-provider-plugins.md: 10 chars
- docs/platforms/macos.md: 10 chars
2026-05-05 20:58:10 -07:00
Vincent Koc
2b8d91d9ee
docs: typography hygiene + 2 in-body H1 removals across 5 pages
...
Replaced 112 typography characters (curly quotes, apostrophes, em/en
dashes, non-breaking hyphens) with ASCII equivalents per
docs/CLAUDE.md heading and content hygiene rules.
- docs/help/gpt55-codex-agentic-parity.md: 22 chars; removed the
duplicate '# GPT-5.5 / Codex Agentic Parity in OpenClaw' H1 (Mintlify
renders the title from frontmatter; the in-body H1 with the slash
produced a brittle anchor).
- docs/platforms/mac/menu-bar.md: 21 chars; removed the duplicate
'# Menu Bar Status Logic' H1.
- docs/tools/acp-agents.md: 23 chars
- docs/concepts/qa-matrix.md: 23 chars
- docs/concepts/qa-e2e-automation.md: 23 chars
2026-05-05 19:34:52 -07:00
Vincent Koc
82fd83418e
docs: replace ampersand headings for stable Mintlify anchors
...
Per docs/CLAUDE.md, Mintlify anchor generation is brittle for headings
that contain em dashes, apostrophes, and ampersands. Normalize 9 H2
headings across docs/date-time.md, docs/pi.md, docs/platforms/{index,
macos, mac/webchat, mac/peekaboo}.md, docs/nodes/{images,audio}.md, and
docs/reference/AGENTS.default.md from `X & Y` to `X and Y` so anchors
do not collapse on entity decoding. Verified no inbound anchor references
to the renamed sections in the docs tree.
2026-05-05 16:33:00 -07:00
Nimrod Gutman
f42645037f
refactor(macos): move sessions into context submenu ( #75489 )
...
Merged via squash.
Prepared head SHA: bbf5450572
Co-authored-by: ngutman <1540134+ngutman@users.noreply.github.com >
Co-authored-by: ngutman <1540134+ngutman@users.noreply.github.com >
Reviewed-by: @ngutman
2026-05-01 10:22:29 +03:00
Nimrod Gutman
eecd758e39
fix(macos): repair stale gateway tls pins ( #75038 )
...
Merged via squash.
Prepared head SHA: 35196f8f71
Co-authored-by: ngutman <1540134+ngutman@users.noreply.github.com >
Co-authored-by: ngutman <1540134+ngutman@users.noreply.github.com >
Reviewed-by: @ngutman
2026-04-30 14:14:03 +03:00
Peter Steinberger
c72f8f357b
fix: harden mac app computer use docs
2026-04-28 01:25:31 +01:00
Vincent Koc
6a03b76c9a
docs: full-page sentence-case sweep across 6 pages
...
- platforms/oracle: Cost Comparison (2026), Still Recommended, Verify Security Posture
- install/exe-dev: Automated Install with Shelley, Remote Access
- platforms/mac/dev-setup: Build Fails: Toolchain or SDK Mismatch, App Crashes on Permission Grant
- reference/AGENTS.default: What OpenClaw Does, Core Skills, Usage Notes
- install/docker: Containerized Gateway, Agent Sandbox
- ci: Package Acceptance, Job Overview, Local Equivalents
2026-04-27 00:00:31 -07:00
Vincent Koc
5c3e2a6b44
docs: batch fix filler openings across providers, platforms, install, tools, and pi
...
- platforms/mac/dev-setup: sentence-case heading and direct opener
- tools/browser-wsl2-windows-remote-cdp-troubleshooting: collapse three-bullet split-host setup into one direct sentence
- install/migrating-matrix: drop 'this page covers' filler
- providers/perplexity-provider: rephrase Note opener
- pi: drop 'this document describes' filler
2026-04-26 22:07:47 -07:00
Peter Steinberger
ae45eebef1
fix: route remote mac browser through node host
2026-04-26 05:25:59 +01:00
Peter Steinberger
b277eac656
fix: pin macos ssh remote url to loopback
2026-04-26 05:01:25 +01:00
Vincent Koc
2fb9c7e3e5
docs: add Related sections to remaining platform, reference template, and misc pages
2026-04-23 20:40:15 -07:00
Vincent Koc
86fa8eeb68
docs: add Related to google-meet, fix Remote control title case
2026-04-23 20:33:01 -07:00
Vincent Koc
789e71cdb8
docs: remove H1 on pages where frontmatter + summary already cover the parenthetical
2026-04-23 15:47:48 -07:00
Vincent Koc
2777b089b5
docs: normalize frontmatter titles to sentence case
2026-04-23 13:15:17 -07:00
Vincent Koc
4a2cd533ac
docs: remove duplicate H1 where frontmatter title already sets it
2026-04-23 13:11:14 -07:00
Peter Steinberger
bc910942e2
docs: refresh history sanitization tag mirrors
2026-04-04 22:21:26 +01:00
Peter Steinberger
3d65b14019
docs: refresh NO_REPLY history mirrors
2026-04-04 21:55:11 +01:00
Peter Steinberger
adfdde5cb3
docs: refresh chat history sanitization mirrors
2026-04-04 21:53:25 +01:00
Peter Steinberger
291afbbb95
docs: refresh transcript sanitization mirrors
2026-04-04 21:52:15 +01:00
Peter Steinberger
f94645dfe5
docs: refresh session recall sanitization refs
2026-04-04 19:26:37 +01:00
Peter Steinberger
fd222d3f07
docs: refresh chat history scaffolding refs
2026-04-04 19:23:55 +01:00