20 Commits
Author SHA1 Message Date
Peter Steinberger 4d06fa489b refactor(channels): deslop smaller channel plugins (#157825)
* refactor(channels): deslop smaller channel plugins

Consolidate duplicated transport, settings, rendering, and lifecycle code across ten bundled plugins. Preserve channel authorization, credential precedence, formatting, CUA tool contracts, path safety, and persisted-state semantics.

Fix double-bracketed Tlon IPv6 ship origins and release downloaded SMS media when sender access is revoked before dispatch. Regression tests fail on the original owners and pass after repair. Related: #157788.

* test(channels): remove retired Buzz runtime barrel inventory
2026-09-24 22:52:40 -07:00
Vincent Koc 0cb59d88ff docs: fix checkable ux defects in docs/cli and docs/concepts (#143927)
* docs: fix checkable ux defects in docs/cli and docs/concepts

Works the subset of open `ux` audit findings for docs/cli/ and
docs/concepts/ where the finding names something objectively checkable
against the current tree or the source: a missing prerequisite, a
self-contradiction, an unstated default, or a step a reader cannot
execute as written. Stylistic rows ("add an intro paragraph", "this
section is dense", "consider a table") are left open.

Missing prerequisites and unexecutable steps:
- cli/voicecall: page says the plugin must be installed and enabled but
  never gives the commands (r3-1260).
- cli/acp: the `acpx` section uses the external `acpx` npm CLI without
  saying where it comes from, and the page also uses `acpx` for the
  unrelated `@openclaw/acpx` Gateway plugin, which installs no binary
  (r3-1236).
- concepts/memory-builtin: "Run interactive llama.cpp setup once" names
  no command; it is `openclaw onboard` (r3-1445).
- concepts/memory-honcho: setup prompts for API credentials the page
  never says how to obtain (r3-1476).
- concepts/personal-agent-benchmark-pack: the run command needs a source
  checkout and OPENCLAW_ENABLE_PRIVATE_QA_CLI=1, neither stated
  (r3-1481).

Contradictions:
- concepts/delegate-architecture: the bindings example configures the
  same `delegate` agent with a weaker deny list than the tool-policy
  section two screens up, dropping write/edit/apply_patch from an agent
  the page says is locked down (r3-1453).
- cli/config vs cli/models: `config set` rejects a model reference it
  cannot resolve, `models set` saves it with a warning. Both were
  correct and neither said the other existed (r3-1178).
- concepts/typing-indicators: the Defaults list omits the
  message-tool-only rule, which resolveTypingMode() applies ahead of the
  group rules the list does give (r3-1494).

Missing elements and stale terms:
- concepts/main-session: names the default `all` visibility without
  `tools.sessions.visibility` (r5-0010).
- cli/path: never links /plugins/oc-path (r3-1211).
- cli/agents: two Related lists that had drifted apart (r3-1282).
- cli/tasks: the only docs/cli title carrying literal backticks
  (r3-1304).
- cli/worker: internal roadmap term "milestone-3 placement owner"
  (r3-1268).
- concepts/delegate-architecture: Azure AD is now Microsoft Entra ID
  (r3-1452).
- concepts/multi-agent: a JSON5 config example fenced as `js` while the
  page's other two use `json5` (r3-1378).

No heading text changed, so no anchor id is added or dropped; verified
with parseDocsDocument over all 15 pages before and after. Adds the two
zh-CN glossary sources check-docs-i18n-glossary requires, each beside a
related existing entry rather than appended at the end.

* docs(models): scope the config-set validation comparison to text models

ClawSweeper P2 on docs/cli/models.md:38. The paragraph covers both
`models set` and `models set-image`, so "the same setting" implied that
`config set agents.defaults.imageModel.primary` also rejects an
unresolvable model. It does not: `pathMayAffectTextModelRefs` in
src/cli/config-model-validation.ts:52 returns true for
`agents.defaults` only when `path[2] === "model"`, so `imageModel` is
excluded and the config mutation validator never runs a model check on
it.

Names `agents.defaults.model` explicitly and says the check is
text-model only, rather than leaving readers to infer a validation
guarantee `config set` does not provide for image models.
2026-09-10 18:39:20 +08:00
Vincent Koc c83277b970 docs: correct verified accuracy defects in CLI, tools, and automation pages (#143179)
* docs: correct verified accuracy defects in CLI, tools, and automation pages

Resolve the open `accuracy` audit findings for docs/cli/, docs/tools/ and
docs/automation/. Every claim was checked against the implementation before
the prose was touched; findings the source contradicted are left unchanged and
rebutted in the PR body.

Factual corrections (docs disagreed with code):

- onboard: Z.AI defaults are glm-5.3 (coding) and glm-5.2 (general), not
  glm-5.2/glm-5.1 (extensions/zai/model-definitions.ts, openclaw.plugin.json).
- sessions: the cleanup --json example printed a sessions.json store path, but
  both JSON exits map storePath through resolveSqliteTargetFromSessionStorePath
  (src/commands/sessions-cleanup.ts, src/config/sessions/cleanup-result.ts).
- diffs: `plugins install diffs` resolved to an unrelated npm package; the
  plugin is external, not bundled (extensions/diffs/package.json).
- ollama-search: a bare "OLLAMA_API_KEY" string is a literal key, not env
  indirection (src/config/types.secrets.ts).
- minimax-search: the region list contradicted its own opening condition and
  merged two tiers (extensions/minimax/src/minimax-web-search-provider.runtime.ts).
- imap: addressTokens is a per-account key (extensions/imap/src/config.ts).
- thinking: GLM-5.3 is a second Z.AI exception (extensions/zai/provider-policy-api.ts).
- video-generation: buffer-backed videoToVideo also covers fal reference-to-video
  (src/video-generation/live-test-helpers.ts).
- slash-commands: the missing third source is skill commands
  (src/auto-reply/commands-registry-list.ts).
- cron: `cron` is the registered command and `automations` its alias
  (src/cli/cron-cli/register.ts).
- setup: add the real --classic and --agent-name flags to the Options table
  (src/cli/program/register.setup.ts).
- path: file-slot wildcard rejection exits 2 (extensions/oc-path/src/cli.ts).

Version scope added only where a release could be cited: 2026.8.1 (heartbeat
task migration, inferred commitments, artifact-area staging), 2026.4.29 (owner
bootstrap), 2026.4.26 (Hunter Alpha), 2026.3.31 (nodes.run). Elsewhere the
time-relative wording is replaced with the verified current behaviour rather
than a guessed version.

* docs(swarm): keep the limits-and-roadmap anchor after the heading rename

docs/AGENTS.md requires existing published heading ids to stay stable. The
rename from 'Limits and roadmap' to 'Limits' changed the generated fragment,
so add an explicit <a id="limits-and-roadmap" /> stub above the heading.
parseDocsDocument now reports both ids with no collisions.
2026-09-09 23:57:06 +09:00
Peter Steinberger 37aaf07377 fix: preserve Markdown values and simplify plugin adapters (#140150)
Keep dollar replacement tokens literal and reject incoming Markdown
insertion sentinel values before writes or dry-run previews. Share the
existing Markdown and JSON serializers, remove redundant Matrix context
branching, and use one ordered provider catalog auth selector.

Preserve complete selected auth results and synchronous unbound lookup.
The new private host export requires synchronized core/plugin release
preparation to advance compat.pluginApi; do not independently publish
these official plugins with the older floor.
2026-09-06 07:27:25 -07:00
Peter Steinberger e96fde33a4 fix(oc-path): emit patches that preserve exact edit bytes (#136531)
* fix(oc-path): emit patches that preserve exact edit bytes

* test: reuse CLI fixtures and canonical recovery admission

* test(cli): retain the canonical main process test split

* ci: refresh checks against current main
2026-09-02 14:42:56 -07:00
cxbAsDevandAyaan Zaidi 357078cf70 fix(oc-path): bound CLI file reads (#110714)
Bound user-selected OcPath files before parsing so oversized and special files cannot consume unbounded memory or hang the CLI.

Reuse one descriptor snapshot across resolve, find, set, and emit while preserving the JSONC oversized-input diagnostic.

Co-authored-by: Ayaan Zaidi <hi@obviy.us>
2026-08-30 12:19:01 +05:30
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
Gio Della-Libera 3a72a30074 fix(oc-path): support deep config edits (#86060) 2026-05-24 18:10:02 -07:00
Gio Della-LiberaandGio Della-Libera <giodl73@gmail.com 0b708a2574 OC Path: restore YAML support (#81436)
* OC Path: restore YAML support
* fix(oc-path): guard yaml writes and empty sequences
* fix(oc-path): guard yaml insertion keys
* fix(oc-path): guard yaml object key
* fix(oc-path): classify yaml root insertions
* style(oc-path): format yaml branch after rebase
* fix(oc-path): reject malformed yaml edits
* docs(oc-path): clarify yaml file support
* fix(ci): refresh yaml branch after rebase
* fix(ci): clean shared blockers for yaml path PR
* fix(changelog): keep yaml path note scoped
* fix(ci): preserve current shared contracts


---------

Co-authored-by: Gio Della-Libera <giodl73@gmail.com
2026-05-16 07:52:08 -07:00
c8bec51869 OC Path: add dry-run diff output (#81437)
* OC Path: add dry-run diff output

* fix(oc-path): require dry-run for diff output

* fix(oc-path): show final newline diff

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix(oc-path): show line-ending-only dry-run diffs

---------

Co-authored-by: Gio Della-Libera <giodl@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-15 21:54:06 -07:00
Peter Steinberger 58a80d3d93 docs(oc-path): expand usage examples 2026-05-09 01:48:35 -04:00
Peter Steinberger 696540f63a docs(oc-path): explain why path addressing helps 2026-05-09 01:48:35 -04:00
Peter Steinberger 52a319047e docs(oc-path): add bundled plugin overview and per-kind CLI recipes 2026-05-09 01:48:35 -04:00
Gio Della-Libera 4656848900 docs(path): format oc-path CLI table 2026-05-09 01:48:35 -04:00
Gio Della-Libera 8f26422840 fix(oc-path): tighten path contracts 2026-05-09 01:48:35 -04:00
Peter Steinberger a22c5822c3 docs: finish oc-path plugin docs 2026-05-09 01:48:35 -04:00
Gio Della-Libera 457c29b36a docs(path): scrub references to dropped grammar features 2026-05-09 01:48:35 -04:00
Peter Steinberger e3b33a26cd refactor: move oc-path into plugin 2026-05-09 01:48:35 -04:00
Peter Steinberger b3c06e8d79 revert: remove oc-path implementation 2026-05-09 03:07:12 +01:00
bc735f4fde feat(workspace): oc-path addressing substrate + openclaw path CLI (md/jsonc/jsonl/yaml) (#78678)
Implements #78051 — oc:// addressing substrate for workspace files.

New src/oc-path/ substrate (parser/formatter, per-kind parse+emit for
md/jsonc/jsonl/yaml, universal resolveOcPath/setOcPath/findOcPaths verbs,
sentinel emit guard) + openclaw path resolve|find|set|validate|emit CLI +
docs/cli/path.md reference page + CHANGELOG entry.

Co-authored-by: giodl73-repo <235387111+giodl73-repo@users.noreply.github.com>
Co-authored-by: galiniliev <5711535+galiniliev@users.noreply.github.com>
2026-05-07 22:26:28 -07:00