Markus Hartung
4970ed2357
fix(matrix): accept Room v12 IDs without server suffix ( #123931 )
...
* fix(matrix): recognize room version 12 room IDs (no :server suffix)
Room version 12 (MSC4291) dropped the trailing ":server" from room
IDs -- they are now a hash of the create event. Every place in the
Matrix plugin that treated "!" + ":" as the signature of an
already-resolved room ID silently discarded valid v12 room IDs as
unresolved instead of using them directly:
- channels.matrix.rooms config resolution (config.ts) dropped the
entry entirely, so group rooms could never pass the groupPolicy
"allowlist" gate on a v12 homeserver -- messages were dropped with
no reply and no default-level log line, since the only trace is a
verbose-only debug log.
- The invite auto-join allowlist validator and the interactive
group-room setup resolver in onboarding.ts had the same check
duplicated, so a user typing a v12 room ID during setup would be
told it was invalid.
- session-route.ts's per-room DM recipientSessionExact check had the
same gap for room-kind sends.
Runtime auto-join (auto-join.ts) already only checked for the "!"
sigil, which is why joining a v12 room worked while responding in it
did not -- this made the bug hard to spot from the join path alone.
Fix: add a single canonical isMatrixRoomId predicate next to the
existing isMatrixQualifiedUserId in target-ids.ts (user IDs and
aliases still require ":server" per spec; only room IDs changed) and
reuse it at all four sites instead of repeating the stale check.
Confirmed live against a real Room v12 homeserver (Conduit): the
server's own /joined_rooms response returns bare "!<hash>" room IDs
with no colon.
* docs(matrix): document suffixless room version 12 room IDs
Room version 12 (MSC4291) dropped the ":server" suffix from room
IDs. Document that the suffixless "!room" form is accepted anywhere
the docs previously only showed "!room:server", matching the
target-ids.ts fix landed in this same PR.
* fix(matrix): update stale Room v12 guidance text
* docs(matrix): accept suffixless Room v12 IDs in the group-policy guide
docs/channels/matrix.md already documents that channels.matrix.groups
accepts the suffixless !room form on room version 12+, but the
group-policy guide (docs/channels/groups.md) still only listed
!room:server, contradicting the channel doc an operator on a v12
homeserver would actually be following.
Addresses the ClawSweeper P2 finding on PR #123931 .
* fix(matrix): advertise suffixless Room v12 IDs in onboarding placeholders
The invite auto-join and group-room setup prompts' placeholder text
still showed only `!roomId:server`, even though the retry note,
validation, and unresolved-room diagnostic already accept and describe
the suffixless `!roomId` form on room version 12+. An operator on a
v12 homeserver would see their homeserver's own room IDs contradicted
by the very placeholder guiding them through setup.
Updated both placeholders to list the suffixless form alongside the
existing examples, matching the phrasing already used in
docs/channels/matrix.md and the invite retry note. Added
configureRoomsAccess/roomsAllowlist options to the shared
createMatrixUpdateKeepCredentialsPrompter test harness (mirroring the
existing inviteAutoJoin option) so the group-room setup flow can be
exercised without duplicating the base prompter setup, then added
focused tests asserting the exact placeholder text for both prompts.
Verified both new tests fail against the pre-fix placeholders and pass
after.
Addresses the two ClawSweeper P2 findings on PR #123931 .
* test(matrix): restore only allowlisted environment keys
* fix(matrix): reject empty room identifiers
---------
Co-authored-by: Patrick Erichsen <patrick.a.erichsen@gmail.com >
2026-08-19 16:12:05 -07:00
Josh Avant
aea7ee7088
fix(matrix): keep user ID authorization case-sensitive ( #125432 )
...
* fix(matrix): preserve case-sensitive user IDs
* docs(matrix): clarify exact user ID casing
* fix(matrix): preserve exact IDs during resolution
* docs(matrix): clarify approval target casing
2026-08-17 18:08:25 -07:00
joshavant
4408ceb68e
fix(matrix): retain previews when replacement delivery fails
2026-08-12 20:32:32 -05:00
Peter Steinberger
f4bac99a81
feat(secrets): add SQLite-backed secret store ( #121559 )
2026-08-10 07:08:40 -07: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
0e792b6de3
refactor(channels): centralize inbound orchestration and remove internal compat ( #109716 )
...
* refactor(channels): centralize inbound turn orchestration
* refactor(runtime): remove stale compatibility paths
* chore(guards): reject internal deprecated API use
* refactor(channels): simplify core turn planning
* chore(guards): keep deprecated checks boundary-focused
* refactor(memory): keep modern config off compat barrel
* fix(msteams): preserve feedback learning
* test(channels): align modern inbound fixtures
* refactor(channels): finish modern inbound migration
* refactor(channels): tighten core inbound kernel
* fix(channels): preserve turn assembly narrowing
* test(sdk): keep runtime mock binding immutable
* test(matrix): isolate read policy runtime
* test(msteams): mock canonical reply factory
* test(slack): mock core inbound turn dispatch
* test(telegram): inject core session recorder
* test(signal): inject core session recorder
* test(googlechat): assert canonical inbound routing
* test(synology-chat): align core turn fixture
* fix(sdk): preserve direct DM runtime compat
* refactor(channels): own inbound envelope compat in core
* refactor(channels): trim inbound dispatch seams
* refactor(channels): remove redundant async wrappers
* test(synology-chat): type canonical dispatcher mock
* refactor(channels): remove remaining dead compat seams
* chore(sdk): refresh API baseline after rebase
* fix(channels): preserve direct DM identity metadata
2026-07-17 00:56:46 -07:00
Peter Steinberger
83d82c9302
refactor(channels): persist runtime state in plugin SQLite ( #109380 )
...
* refactor(channels): move reef, msteams, matrix, zalouser file state to SQLite with doctor imports
* fix(channels): harden SQLite state migrations
* test(reef): use SQLite flow stores in receipt suites
* fix(reef): validate restored request policy
* fix(reef): retain replay state through relay window
* docs(reef): describe durable state import
* fix(reef): honor configured legacy state path
* chore: leave changelog to release flow
* fix(reef): use managed temp root in flow tests
* fix(matrix): omit undefined device id from state
2026-07-16 17:05:28 -07:00
Peter Steinberger
623ec0f369
improve(qa-matrix): split E2EE runtime and protect recovery keys ( #107828 )
...
* fix(autoreview): handle verified QA source references
* refactor(qa-matrix): split E2EE scenario runtime
* style(qa-matrix): format recovery scenario
* chore(qa-matrix): prune split runtime baseline
* chore: keep release note in PR
2026-07-14 16:13:41 -07: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
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
8a519a9abe
docs(matrix): document missing streaming.progress mode, progress sub-fields, and mentionPatterns config ( #98318 )
...
* docs(matrix): document missing streaming.progress mode, progress sub-fields, and mentionPatterns config
* docs: clarify Matrix progress labels
---------
Co-authored-by: Vincent Koc <25068+vincentkoc@users.noreply.github.com >
2026-07-01 02:49:23 -07:00
黄伟浩
f4201578e5
fix(matrix): warn on accumulated token storage roots ( #97353 )
2026-06-28 12:34:52 -07:00
Vincent Koc
03a71f3b46
fix(matrix): prevent double bootstrapCrossSigning reset in forced reset ( #95720 )
...
Merged via squash.
Prepared head SHA: afa7684e4b
Co-authored-by: vincentkoc <25068+vincentkoc@users.noreply.github.com >
Co-authored-by: steipete <58493+steipete@users.noreply.github.com >
Reviewed-by: @steipete
2026-06-22 02:45:56 -07:00
Peter Steinberger
2514980118
feat(matrix): handle voice preflight and threads ( #90415 )
...
* feat(matrix): handle voice preflight and threads
Co-authored-by: Frank Dierolf <frank_dierolf@web.de >
Co-authored-by: marc.wilson <marcwilson@gazasrv15i5.globaladvisors.biz >
* test(matrix): satisfy ci guards
* fix(matrix): preserve thread relations on edits
* chore: annotate deprecated compatibility aliases
* fix(matrix): include poll thread roots in reads
* test(matrix): enable audio preflight qa config
* test(matrix): make voice preflight QA mention deterministic
---------
Co-authored-by: Frank Dierolf <frank_dierolf@web.de >
Co-authored-by: marc.wilson <marcwilson@gazasrv15i5.globaladvisors.biz >
2026-06-05 08:49:35 -07:00
Peter Steinberger
5ac6b600de
docs(channels): document bot loop protection
2026-05-13 14:59:47 +01: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
Pavan Kumar Gondhi
93ff72a5e8
fix(matrix): gate name-based allowlist resolution [AI] ( #79007 )
...
* fix: gate matrix mutable name resolution
* addressing codex review
* addressing codex review
* addressing codex review
* address feedback
* addressing codex review
* addressing codex review
* addressing codex review
* addressing codex review
* chore: drop unrelated matrix fix churn
* chore: refresh channel config metadata
* chore: remove unrelated formatting churn
* docs: add changelog entry for PR merge
2026-05-11 10:47:27 +05:30
Peter Steinberger
b34cf2f1a2
fix: externalize matrix plugin
2026-05-09 06:38:29 +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
Peter Steinberger
d111676bcb
ci: externalize more channel plugins
2026-05-02 07:52:26 +01:00
Peter Steinberger
8612af754b
feat: simplify thread-bound session spawning
2026-05-02 06:58:07 +01:00
Peter Steinberger
2b0b614417
docs(plugins): clarify clawhub npm migration
2026-04-29 06:09:34 +01:00
Gustavo Madeira Santana
24068f19c6
matrix: stream tool progress in previews
2026-04-27 16:21:34 -04:00
kakahu
d70808433d
Add structured Matrix approval metadata ( #72432 )
...
Merged via squash.
Prepared head SHA: 0e06533dff
Co-authored-by: kakahu2015 <17962485+kakahu2015@users.noreply.github.com >
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Reviewed-by: @gumadeiras
2026-04-27 14:52:02 -04:00
Vincent Koc
0e4be1e3d3
docs(matrix): move migration guide from install/ to channels/
...
The Matrix migration guide is plugin-upgrade content (encrypted-state recovery,
device verification, room-key restore) rather than a cross-system import or
machine move, so it belongs alongside the Matrix channel docs rather than under
Install > Maintenance > Migrating.
- Move docs/install/migrating-matrix.md to docs/channels/matrix-migration.md
- Update inbound link in docs/channels/matrix.md
- Update the migrating.md hub: replace the Matrix Card with a one-line link in 'Upgrade a plugin in place'
- Refresh Related list on the moved page (link Matrix push rules and Migration guide hub)
- docs.json: remove install/migrating-matrix from Maintenance > Migrating, slot channels/matrix-migration between channels/matrix and channels/matrix-push-rules in the Mainstream channels group, and add a /install/migrating-matrix -> /channels/matrix-migration redirect
2026-04-27 03:12:32 -07:00
Vincent Koc
a167e687ce
docs: fix live docs CI
2026-04-26 22:04:16 -07:00
Gustavo Madeira Santana
241d0cb88e
chore(docs): dedupe and simplify matrix docs
2026-04-27 00:52:04 -04:00
Gustavo Madeira Santana
99159f89da
fix(matrix): stabilize e2ee qa flows
2026-04-26 23:40:52 -04:00
Peter Steinberger
00d2fbfda4
test(cron): cover delivery context edge cases
2026-04-26 02:20:39 +01:00
Gustavo Madeira Santana
d5166718bc
test(matrix): cover destructive E2EE backup recovery flows ( #71311 )
...
Merged via squash.
Prepared head SHA: fd5fc06007
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Reviewed-by: @gumadeiras
2026-04-25 17:48:18 -04:00
Gustavo Madeira Santana
72731a37d2
Require full Matrix identity trust ( #70401 )
...
Merged via squash.
Prepared head SHA: d13a729681
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Reviewed-by: @gumadeiras
2026-04-24 17:58:57 -04:00
Vincent Koc
f051204bea
docs(gateway): split configuration-reference by extracting channels cluster into config-channels
2026-04-23 20:12:09 -07:00
Vincent Koc
4a2cd533ac
docs: remove duplicate H1 where frontmatter title already sets it
2026-04-23 13:11:14 -07:00
Vincent Koc
99e8ede76c
docs: extract Matrix push rules runbook, table verify CLI, merge E2EE H3s
2026-04-23 07:51:42 -07:00
Vincent Koc
daaedf37b7
docs: prune recent additions for readability
2026-04-23 00:23:18 -07:00
Vincent Koc
91c795cee0
docs: MCP + cron + plugin lifecycle plus channel env-block cross-links
2026-04-22 23:56:53 -07:00
Vincent Koc
7d7c0b1dfe
docs: cover BB tapback fallback, iMessage/SMS routing, Mattermost streaming, Matrix mention-prefixed slash
2026-04-21 13:09:09 -07:00
Peter Steinberger
976306641d
fix(matrix): resolve live allowlist updates
2026-04-20 13:10:02 +01:00
saram ali
b2753fd0de
fix(matrix): fix E2EE SSSS bootstrap for passwordless token-auth bots ( #66228 )
...
Merged via squash.
Prepared head SHA: c62cebf7c3
Co-authored-by: SARAMALI15792 <140950904+SARAMALI15792@users.noreply.github.com >
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Reviewed-by: @gumadeiras
2026-04-15 11:48:29 -04:00
Gustavo Madeira Santana
5bf30d258f
matrix: prefer named default account
2026-04-14 17:01:59 -04:00
Gustavo Madeira Santana
106a40426f
docs(matrix): tighten setup and config guidance
2026-04-08 14:38:10 -04:00
Gustavo Madeira Santana
d78512b09d
Refactor: centralize native approval lifecycle assembly ( #62135 )
...
Merged via squash.
Prepared head SHA: b7c20a7398
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Reviewed-by: @gumadeiras
2026-04-07 14:40:26 -04:00
Gustavo Madeira Santana
9fd47a5aed
Matrix: prompt invite auto-join during onboarding ( #62168 )
...
Merged via squash.
Prepared head SHA: aec7a2249a
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Reviewed-by: @gumadeiras
2026-04-06 23:22:01 -04:00
Gustavo Madeira Santana
9568cceee3
docs: clarify Matrix invite and config guidance
2026-04-06 10:25:47 -04:00
Gustavo Madeira Santana
9fc2a9feeb
docs(matrix): clarify historyLimit default
2026-04-05 23:54:02 -04:00
Gustavo Madeira Santana
12f3c36ba8
Docs: clarify Matrix autoJoin invite scope
2026-04-05 23:33:29 -04:00
Gustavo Madeira Santana
e02ef0710e
Docs: clarify Matrix quiet push rules
2026-04-05 21:15:03 -04:00
Gustavo Madeira Santana
1ee30dc70a
docs: note Matrix persisted auth detection
2026-04-05 20:18:03 -04:00
Gustavo Madeira Santana
8a841b531f
fix(matrix): split partial and quiet preview streaming ( #61450 )
...
Merged via squash.
Prepared head SHA: 6a0d7d1348
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Reviewed-by: @gumadeiras
2026-04-05 18:23:07 -04:00