Peter Steinberger
914f73ac99
docs: replace retired config keys with canonical schema keys ( #121330 )
2026-08-09 20:30:43 -07:00
Peter Steinberger
14fe739ee9
fix(feishu): enforce exact signed webhook request boundaries ( #118758 )
...
* fix(feishu): enforce exact signed webhook request targets
* fix(feishu): preserve explicitly configured signed webhook query targets
* fix(feishu): preserve shipped relative webhook paths
* fix(feishu): normalize and migrate legacy webhook callback paths
* fix(feishu): preserve transformed webhook schema defaults
* fix(feishu): require canonical webhook paths before runtime startup
* docs(feishu): document canonical webhook routes and doctor recovery
2026-08-03 14:52:58 -07:00
Eden
601a405430
fix(channels): mark durable webhook acceptance on Zalo, Google Chat, SMS, Feishu, Nextcloud Talk, and Synology Chat ( #115586 )
...
* fix(channels): extend the durable-acceptance marker to zalo, googlechat, and sms
* fix(feishu): mark durable webhook acceptance
* fix(channels): extend the durable-acceptance marker to nextcloud-talk and synology-chat
* fix(channels): extend the durable-acceptance marker to zalo, googlechat, and sms
* fix(feishu): mark durable webhook acceptance
* fix(channels): extend the durable-acceptance marker to nextcloud-talk and synology-chat
* fix(channels): carry durable webhook admission results
* docs(changelog): note durable webhook acceptance
* test(channels): tighten webhook admission types
* chore: leave release changelog to release prep
---------
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
2026-07-30 01:07:08 +08:00
Peter Steinberger
94025985f7
fix(feishu): reject unsupported initial document content ( #115697 )
2026-07-29 04:53:11 -04:00
Peter Steinberger
960b050add
refactor(extensions): remove orphaned shadow trial and retired config aliases ( #114709 )
...
* refactor(memory-core): remove orphaned shadow trials
* refactor(qqbot): migrate direct voice upload formats
Release note: QQBot configs using voiceDirectUploadFormats now migrate through openclaw doctor --fix to audioFormatPolicy.uploadDirectFormats at root and account scope. Existing nested uploadDirectFormats values win conflicts, and runtime reads only the nested policy.
* refactor(feishu): migrate tools base alias
Release note: Feishu configs using tools.base now migrate through openclaw doctor --fix to tools.bitable at root and account scope. Existing bitable values win conflicts, and runtime accepts only the canonical key.
* refactor(extensions): remove dead runtime state
* chore(config): refresh bundled channel metadata
* refactor(codex): keep realtime fallback type private
* test(ci): align QA compatibility scenario count
2026-07-27 17:12:41 -04:00
Peter Steinberger
edecdbd05e
refactor(config): config-surface reduction tranche 3 — product consolidations (review request) ( #111527 )
...
* refactor(config): consolidate media model lists
* refactor(config): unify memory configuration
* refactor(config): consolidate TTS ownership
* refactor(config): move typing policy to agents
* refactor(config): retire product-level config surfaces
* refactor(config): share scoped tool policy type
* chore(config): refresh generated baselines
* fix(config): honor agent typing overrides
* fix(config): migrate sibling config consumers
* refactor(infra): keep base64url decoder private
* fix(config): strip invalid legacy TTS values
* chore(config): refresh rebased baseline hash
* fix(doctor): route legacy messages.tts.realtime voice to talk during tts move
* refactor(config): polish final layout names
* refactor(config): freeze retired tuning defaults
* feat(config): add fast mode default symmetry
* refactor(config): key agent entries by id
* docs(config): update final layout reference
* test(config): cover final layout migrations
* chore(config): refresh final layout baselines
* fix(config): align final layout runtime readers
* fix(config): align remaining readers
* fix(config): stabilize final layout migrations
* fix(config): finalize config projection proof
* fix(config): address final layout review
* docs(release): preserve historical config names
* fix(config): complete keyed agent migration
* fix(config): close final migration gaps
* fix(config): finish full-branch review
* fix(config): complete runtime secret detection
* fix(config): close final review findings
* fix(config): finish canonical docs and heartbeat migration
* fix(config): integrate latest main after rebase
* refactor(env): isolate test-only controls
* refactor(env): isolate build and development controls
* refactor(env): collapse process identity indirection
* refactor(env): remove duplicate config and temp aliases
* docs(env): define the operator-facing allowlist
* ci(env): ratchet production variable count
* fix(env): remove stale provider helper import
* fix(env): make ratchet sorting explicit
* test(env): keep test seam in dead-code audit
* test(env): cover ratchet growth and boundary; document surface budgets
* docs(config): document tier-eval consolidations
* docs(config): clarify speech preference ownership
* test(memory): align retired tuning fixtures
* refactor(memory): freeze engine heuristics
* refactor(config): apply tier-eval tranche
* refactor(tts): move persona shaping to providers
* refactor(compaction): move prompt policy to providers
* test(config): align hookified prompt fixtures
* chore(deadcode): classify test-only exports
* chore(github): remove unused spawn helper
* chore(deadcode): classify queue diagnostics
* chore(deadcode): remove unused lane snapshot export
* chore(plugin-sdk): ratchet consolidated surface
* fix(config): integrate latest main after rebase
2026-07-21 20:28:43 -07:00
Peter Steinberger
fdf44edf4d
docs: document channel ingress guarantees ( #111069 )
2026-07-18 17:26:41 -07:00
max
907f5552f5
feat(feishu): handle opt-in VC meeting invites ( #92340 )
...
* feat(feishu): handle VC meeting invites
* fix(feishu): route VC invites through DM ingress
* fix(feishu): keep VC invite chat id canonical
* fix(feishu): handle VC invite pairing
* fix(feishu): simplify VC invite dispatch
* fix(feishu): guard VC invite pairing
* refactor(feishu): canonicalize VC invite ingress
Co-authored-by: renaocheng <renaocheng@bytedance.com >
* refactor(feishu): keep synthetic routing internal
Co-authored-by: renaocheng <renaocheng@bytedance.com >
* refactor(feishu): hide VC invite internals
Co-authored-by: renaocheng <renaocheng@bytedance.com >
* fix(feishu): gate VC invitation auto-join
* chore(config): refresh Feishu config baseline
* test(feishu): use synthetic VC fixture credential
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-17 12:36:42 +01:00
Max Huang
3e838782b1
feat(feishu): bot-to-bot conversation support with @mention handling ( #89783 )
...
* feat(feishu): support bot-authored mentions
Co-authored-by: heyumeng154-alt <260365965+heyumeng154-alt@users.noreply.github.com >
* test(feishu): isolate bot name resolver state
* fix(feishu): verify bot mention identity
* docs: refresh Feishu channel map
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
Co-authored-by: heyumeng154-alt <260365965+heyumeng154-alt@users.noreply.github.com >
2026-07-17 11:44:00 +01:00
Peter Steinberger
0d90ca6b5d
refactor(config): retire flat and scalar streaming keys from matrix, feishu, and qqbot ( #105808 )
...
* feat(doctor): migrate legacy matrix/feishu/qqbot streaming spellings to nested config
* test(matrix): shorten setup fixture tokens below the review secret-scanner threshold
* refactor(config): retire flat/scalar streaming keys from matrix, feishu, and qqbot
* docs: describe nested-only streaming config for matrix, feishu, and qqbot
* fix(qa-matrix): compose nested streaming config for the matrix QA harness
* test(feishu): compose negative webhook fixtures outside the GHSA opengrep pattern
* docs: refresh generated docs map
* test(feishu): compose negative webhook fixtures from lint-clean bases outside the GHSA opengrep pattern
* fix(qa-lab): rewrite crabline flat streaming config into the nested channel shape
* chore(config): regenerate channel config metadata and plugin-sdk API baseline for nested-only streaming
* chore(plugin-sdk): absorb main-side deprecated pairing/conversation pin drift
* fix(qa-lab): consume Crabline nested streaming config
2026-07-12 20:33:14 -07:00
destire-mio
f547e2bd85
fix(feishu): drive info finds files past the first page ( #104190 )
...
Co-authored-by: destire-mio <248462155+destire-mio@users.noreply.github.com >
2026-07-12 07:24:06 +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
wm0018
293f0369d0
docs(feishu): remove nonexistent disabled dmPolicy option
2026-06-29 01:05:03 -07:00
liuhao1024
db5e415888
fix(feishu): re-resolve route when dynamic agent binding already exists in runtime config ( fixes #42837 ) ( #92814 )
...
* fix(feishu): re-resolve route when dynamic agent binding already exists in runtime config
When dynamicAgentCreation is enabled and a binding was previously written
to the config file (e.g. from a prior message), the in-memory cfg may be
stale and not contain the binding. Previously, maybeCreateDynamicAgent
returned { created: false, updatedCfg: cfg } with the stale cfg, and
bot.ts only re-resolved the route when created === true. This caused
subsequent messages to still route to agent:main.
Fix: check runtime.config.current() for the binding when it is missing
from the in-memory cfg. When found, return the runtime's current config
so the caller can re-resolve the route with up-to-date bindings.
Fixes #42837
* fix(feishu): serialize dynamic agent config updates
* fix(feishu): route with refreshed runtime config
* fix(feishu): use current dynamic-agent policy
* fix(feishu): reauthorize refreshed dynamic routes
* fix(feishu): authorize dynamic agent mutations
* fix(feishu): complete account-scoped dynamic routing
* fix(feishu): revalidate current direct routes
* fix(feishu): isolate named-account dynamic agents
* fix(feishu): bound named dynamic agent ids
* docs(feishu): explain legacy dynamic agent cap
* test(feishu): fix dynamic routing check types
---------
Co-authored-by: Vincent Koc <25068+vincentkoc@users.noreply.github.com >
2026-06-14 17:28:54 +08:00
Dallin Romney
370cef2e3b
docs: align Feishu DM policy defaults ( #91755 )
2026-06-09 12:31:47 -07:00
OpenClaw Updater
73bb84e4bf
fix: preserve explicit Feishu bitable gates
2026-05-31 17:51:35 +01:00
Peter Steinberger
fbf900c746
refactor: move plugin state consumers to sqlite
...
Summary:
- add plugin-state runtime SDK subpaths backed by the existing sidecar DB
- migrate Discord model-picker preferences and Feishu dedup state to plugin-state keyed stores
- wire doctor legacy-state migration imports, including TTL preservation, for existing plugin JSON state
Verification:
- pnpm plugin-sdk:api:check
- focused plugin-state, doctor, Discord, Feishu, and package-boundary Vitest suites
- git diff --check origin/main...HEAD
- env -u OPENCLAW_TESTBOX pnpm check:changed
- autoreview --mode branch --base origin/main
- GitHub Actions PR checks green on 1025c2b570
2026-05-29 11:12:15 +01:00
oak
d012065ecf
docs(feishu): add dynamicAgentCreation and per-user isolation docs ( #82793 )
...
Add documentation for the dynamicAgentCreation feature used to create
isolated agents per Feishu/Lark user. Covers:
- dynamicAgentCreation configuration fields (enabled, workspaceTemplate,
agentDirTemplate, maxAgents)
- Automatic agent/workspace creation flow
- Session isolation with dmScope
- Template variables ({agentId}, {userId})
- Verification steps and example deployment
Refs: feature available since OpenClaw 2026.4.25+
Co-authored-by: li <li@lideMac-mini.local >
2026-05-22 19:20:46 +01:00
Peter Steinberger
da7cc2b11c
fix(feishu): make manual setup the default
2026-05-11 13:29:13 +01:00
Peter Steinberger
8cc762daff
fix(feishu): keep topic sessions stable
...
Fixes Feishu native topic starter routing by hydrating a missing topic thread ID before session resolution.\n\nCloses #78262 .
2026-05-06 07:30:27 +01:00
Vincent Koc
7a39551685
docs: typography hygiene + 2 in-body H1 removals across 5 pages
...
Replaced 92 typography characters (curly quotes, apostrophes, em/en
dashes, non-breaking hyphens) with ASCII equivalents per
docs/CLAUDE.md heading and content hygiene rules.
- docs/channels/feishu.md: 19 chars; removed the duplicate
'# Feishu / Lark' H1 (Mintlify renders title from frontmatter; the
in-body H1 with a slash produced a brittle anchor).
- docs/gateway/bonjour.md: 18 chars; removed the duplicate
'# Bonjour / mDNS discovery' H1.
- docs/channels/matrix.md: 19 chars
- docs/tools/browser.md: 18 chars
- docs/automation/standing-orders.md: 18 chars
2026-05-05 19:54:53 -07:00
Vincent Koc
03e35b1d83
fix(feishu): honor block streaming config
2026-05-03 11:42:13 -07:00
Peter Steinberger
bd1d1f0f2b
fix: align open DM allowlist policy ( #74112 )
...
* fix: harden telegram open dm allowlist merging
* fix: align open dm allowlist policy
2026-04-29 06:52:12 +01:00
Peter Steinberger
ccfa0c1964
docs: clarify hook config and feishu policy
2026-04-27 23:30:57 +01:00
Peter Steinberger
18ef83c0da
fix(feishu): preserve disabled group policy for explicit groups
2026-04-27 21:55:33 +01:00
Vincent Koc
af03f9248d
docs(feishu): clarify @all is not a bot mention ( b642ebece9)
...
Trace to b642ebece9 (fix(feishu): do not treat @all as a bot mention).
Document the new behavior in the mention requirement section: broadcast-only
@all/@_all messages no longer wake the bot, while messages that combine @all
with a direct bot mention still count as a bot mention.
2026-04-27 02:38:52 -07:00
Vincent Koc
166a6d9088
docs(feishu): convert blockquote callouts to Note components
2026-04-26 21:22:58 -07:00
Peter Steinberger
d419fb561d
feat(tts): resolve channel account config generically
2026-04-26 08:10:36 +01:00
Peter Steinberger
29741f696a
fix(feishu): transcribe inbound voice notes
2026-04-26 04:47:45 +01:00
Peter Steinberger
7fcefd56b7
chore: bump version to 2026.4.25
2026-04-25 10:31:52 +01:00
Peter Steinberger
b0c55eb659
fix(feishu): transcode voice TTS audio
2026-04-25 09:26:42 +01:00
Peter Steinberger
bb5e278f63
fix(feishu): stabilize topic group session keys
2026-04-25 07:53:05 +01:00
Peter Steinberger
e0072ef91a
chore: bump version to 2026.4.24
2026-04-24 02:13:50 +01:00
Vincent Koc
ea25d7ed5b
fix(qr): replace qrcode-terminal with qrcode-tui
...
Replace legacy qrcode-terminal usage with shared qrcode-tui media helpers, bound QR PNG rendering options, and raise bundled plugin host floors for the new SDK runtime surface.
2026-04-23 13:06:14 -07:00
Peter Steinberger
834fdc4832
docs: align documentation with current surfaces
2026-04-23 07:25:06 +01:00
mazhe-nerd
9e2ac8a1cb
feat: Streamline Feishu channel onboarding with QR code scan-to-create flow ( #65680 )
...
Add QR-based app registration, improve Feishu onboarding flows, support direct login entry, add group chat policy setup, reduce log noise, and update docs.
2026-04-13 18:03:44 +08:00
Peter Steinberger
f14f7b9fde
docs: refresh silent token guidance mirrors
2026-04-04 21:58:12 +01:00
Vincent Koc
2d79c9cb16
docs: add WhatsApp reactionLevel and Feishu Drive comment actions
2026-04-01 16:56:47 +09:00
Vincent Koc
2b4f600f9c
docs: Batch 2 — add Related sections to all channel pages
...
Add consistent Related sections to 17 channel pages that had none,
linking to: Channels Overview, Pairing, Groups, Channel Routing, Security.
Add Groups and Security links to 4 channel pages (discord, slack,
telegram, whatsapp) that already had partial Related sections.
2026-03-30 19:08:22 +09:00
Radek Sienkiewicz
4680335b2a
docs: fix English link audits ( #57039 )
...
Merged via squash.
Prepared head SHA: d20a3b620f
Co-authored-by: velvet-shark <126378+velvet-shark@users.noreply.github.com >
Reviewed-by: @velvet-shark
2026-03-30 01:21:00 +02:00
Peter Steinberger
2566d6b300
fix: finish feishu open-group docs and baselines ( #54058 ) (thanks @byungsker)
2026-03-24 23:09:04 -07:00
betoblair
1c7e98de16
docs(feishu): replace botName with name in config examples ( #52753 )
...
Merged via squash.
Prepared head SHA: 5237726c9c
Co-authored-by: haroldfabla2-hue <229189334+haroldfabla2-hue@users.noreply.github.com >
Co-authored-by: altaywtf <9790196+altaywtf@users.noreply.github.com >
Reviewed-by: @altaywtf
2026-03-23 23:48:33 +03:00
Tak Hoffman
4863b651c6
docs: rename onboarding user-facing wizard copy
...
Co-authored-by: Tak <contact-redacted@example.com >
2026-03-16 19:50:31 -05:00
Tak Hoffman
3c6a49b27e
feishu: harden media support and align capability docs ( #47968 )
...
* feishu: harden media support and action surface
* feishu: format media action changes
* feishu: fix review follow-ups
* fix: scope Feishu target aliases to Feishu (#47968 ) (thanks @Takhoffman)
2026-03-16 02:02:48 -05:00
Peter Steinberger
f9e185887f
docs: restore onboard docs references
2026-03-16 05:50:57 +00:00
Peter Steinberger
823039c000
docs: prefer setup wizard command
2026-03-15 22:01:04 -07:00
Peter Steinberger
c4a5fd8465
docs: update channel setup wording
2026-03-15 21:07:18 -07:00
Tak Hoffman
89e3969d64
feat(feishu): add ACP and subagent session binding ( #46819 )
...
* feat(feishu): add ACP session support
* fix(feishu): preserve sender-scoped ACP rebinding
* fix(feishu): recover sender scope from bound ACP sessions
* fix(feishu): support DM ACP binding placement
* feat(feishu): add current-conversation session binding
* fix(feishu): avoid DM parent binding fallback
* fix(feishu): require canonical topic sender ids
* fix(feishu): honor sender-scoped ACP bindings
* fix(feishu): allow user-id ACP DM bindings
* fix(feishu): recover user-id ACP DM bindings
2026-03-15 10:33:49 -05:00
Vincent Koc
7844bc89a1
Security: require Feishu webhook encrypt key ( #44087 )
...
* Feishu: require webhook encrypt key in schema
* Feishu: cover encrypt key webhook validation
* Feishu: enforce encrypt key at startup
* Feishu: add webhook forgery regression test
* Feishu: collect encrypt key during onboarding
* Docs: require Feishu webhook encrypt key
* Changelog: note Feishu webhook hardening
* Docs: clarify Feishu encrypt key screenshot
* Feishu: treat webhook encrypt key as secret input
* Feishu: resolve encrypt key only in webhook mode
2026-03-12 11:01:00 -04:00
Tak Hoffman
fa83010b17
fix(plugins): ship Feishu bundled runtime dependency ( #39990 )
...
* fix: ship feishu bundled runtime dependency
* test: align feishu bundled dependency specs
2026-03-08 10:36:41 -05:00