fix(matrix): restore mobile discovery routing #822
No reviewers
Labels
No labels
W6d-automerge-calibration
agent/claude-code
agent/codex
agent/hermes
agent/iskra
agent/ollama
agent/patchwarden
automerge-candidate
class/security-sensitive
cutover-gate
dependency/blocked
dependency/blocks-others
dependency/cross-repo
dependency/needs-confirmation
domain:agents
domain:ci
domain:docs
domain:forgejo
domain:infra
domain:memory
domain:runtime
domain:signal
domain:ux
flow/architecture
flow/blocked
flow/deployed
flow/done
flow/implementation
flow/intake
flow/maintained
flow/observed
flow/ready
flow/refining
flow/retired
flow/review
iterating
judge/codex-candidate
judge/hermes-candidate
judge/low-confidence
judge/needs-refinement
judge/operator-needed
judge/p0
judge/p1
judge/p2
judge/p3
judge/park
judge/patchwarden-candidate
judge/stale-priority
kind/adr
kind/bug
kind/chore
kind/feature
kind/infra
kind/ops
kind/refactor
kind/research
large-impact
merge/auto
merge/manual
merge/manual-dependency-conflict
merge/manual-failing-tests
merge/manual-merge-conflict
merge/manual-missing-review
merge/manual-operator-preference
merge/manual-red-zone
merge/manual-security-sensitive
merge/manual-unclear-scope
merge/manual-unknown
meta
mode:operator-only
mode:patchwarden-iskra-approved
mode:safe-auto
needs-operator-decision
needs-triage
not-ready
observed/erroring
observed/needs-followup
observed/pending
observed/retire-candidate
observed/unused
observed/used
operator-emotional
owner-attention
phase/02
phase/03
priority:p0
priority:p1
priority:p2
priority:p3
proposed
ready-for-agent
ready-for-operator
recovery
review:claude-reviewed
review:codex-reviewed
review:dziadek-reviewed
review:needs-human
risk/exposure
risk/process
risk/product
risk/runtime
safety:external-write
safety:no-prod-mutation
safety:prod-impact
safety:secret-touch
size/large
size/medium
size/small
size/tiny
size/unknown
source/adr
source/agent-generated
source/manual
source/operator-chat
source/voice-note
status:blocked
status:codex-ready
status:merged:pending-evidence
status:needs-evidence
status:operator-needed
status:parked
tier/full
tier/lite
tier/stacked
tier:0-platform-substrate
tier:1-iskra-value-layer
tier:2-tools-products-modules
type:bug
type:chore
type:docs
type:feat
type:policy
type:research
No milestone
No project
No assignees
3 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
pdurlej/platform!822
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "codex/matrix-discovery-hotfix"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Canary status: missing — fire canary via
python -m platformctl.tools.run_reviewbefore mergeSummary
Persist the live Matrix mobile-discovery hotfix that restored Element iOS homeserver discovery after the runtime fix on rs2000.
Changes
/.well-known/matrix/clientforpdurlej.com,matrix.pdurlej.com, andelement.pdurlej.comthroughmatrix-well-known.application/jsonwith CORS headers.Verification
https://pdurlej.com/.well-known/matrix/clientreturns HTTP 200,Content-Type: application/json, and CORS headers.https://matrix.pdurlej.com/.well-known/matrix/clientreturns HTTP 200,Content-Type: application/json, and CORS headers.https://element.pdurlej.com/.well-known/matrix/clientreturns HTTP 200,Content-Type: application/json, and CORS headers.https://matrix.pdurlej.com/_matrix/client/versionsreturns HTTP 200.config/traefik/dynamic/*.yml.@pdurlej:pdurlej.com; new password is stored in macOS Keychain undermatrix.pdurlej.com / pdurlej.Test plan
.well-known/matrix/clientheader probes from a Tailnet client.Spec sources read
AGENTS.md— repo operating contract and Forgejo rules.docs/forgejo-agent-operations.md— Forgejo identity/write contract..forgejo/pull_request_template.md— PR body requirements.compose/apps/compose.yaml—matrix-well-knownservice definition.modules/matrix-well-known/module.yaml— module purpose and exposure.modules/matrix-well-known/runbook.md— recovery and triage doc updated by this PR.modules/traefik/runbook.md— dynamic config runtime mount path.Risk / class
class/security-sensitive: edge routing, Tailnet allowlist, and Matrix discovery trust boundary.tier/full: route behavior affects login/discovery for Matrix clients.Out of scope
ts-allowlist@fileremains on Matrix/Element routes.Patchwarden PR sanity
Operator signal: 🛑 STOP - reviewer finding(s) must be addressed or explicitly accepted.
Automerge signal: ❌ NOT READY - no unattended merge or APPROVED review should be published.
Verdict: 🛑 STOP - a model reviewer reported actionable findings.
Next step: Address the reviewer finding(s), or leave a human decision explaining why the risk is accepted.
8226efc251b57af7fad724349c6c292814eda5add48advisory_findingsfindingspresentglm-5.2:cloud,deepseek-v4-pro:cloud,kimi-k2.7:cloudWhat I checked
2clean3Approval Handoff
not_ready_reviewer_findingsSignal Board
cleanfindingsnot_ready_reviewer_findingsineligibleautomation firstconfig/traefik/dynamic/matrix-element-restore.yml,modules/matrix-well-known/runbook.mdclass/security-sensitive,risk/exposure,risk/runtime,tier/fullclass/security-sensitiveis present.🧭 Merge authority: branch protection and automerge controller remain authoritative.
Required Fixes
No deterministic blockers.
Reviewer Details
Model reviewer lanes
global-glm/glm-5.2:cloudStatus:
okVerdict:
NOT_OKhighCanary explicitly missing on a security-sensitive edge routing changePR description states: 'Canary status: missing — fire canary viapython -m platformctl.tools.run_reviewbefore merge' and Test plan has unchecked '[ ] Canary/full review before merge because this touches edge routing and a Matrix discovermediumCORS middleware sets Access-Control-Allow-Origin: * without an explicit OPTIONS/preflight routeconfig/traefik/dynamic/matrix-element-restore.yml defines matrix-well-known-json middleware withAccess-Control-Allow-Origin: *,Access-Control-Allow-Methods: GET, OPTIONS, but no router rule matches OPTIONS method explicitly and no midmediumcustomResponseHeaders Content-Type may mask upstream misconfigurationmatrix-well-known-json middleware forcesContent-Type: application/jsonvia customResponseHeaders on all three well-known routers (matrix-well-known-root/host/element). If matrix-well-known serves a 404/HTML error page, Traefik will stilllowmatrix-client router lacks matrix-well-known-json middleware and may shadow well-known on matrix.pdurlej.commatrix-client ruleHost(matrix.pdurlej.com) && (PathPrefix(/_matrix) || PathPrefix(/_synapse/client))has no explicit priority; matrix-well-known-host has priority 450 forHost(matrix.pdurlej.com) && PathPrefix(/.well-known/matrix/`global-deepseek/deepseek-v4-pro:cloudStatus:
okVerdict:
OKlowOverly permissive CORS header on well-known endpointconfig/traefik/dynamic/matrix-element-restore.yml line 10 setsAccess-Control-Allow-Origin: *for the well-known middleware. The route is currently protected byts-allowlist@file, but if that middleware is ever removed or misconfigured,redteam/kimi-k2.7:clouderror-Policy notes
Iskra judgment
pdurlej/platform#pull_request#822judge/p1,judge/patchwarden-candidateiskraviaopenclawRationale: This PR persists a live Matrix mobile-discovery runtime fix touching public well-known routing, CORS, and exposure-sensitive service configuration, so it is important and review-worthy before merge.
Caveat: The packet explicitly says the canary is missing, so merge should wait for the review canary and a quick route/header sanity check.
Structured openclaw.judge.v0 payload
Iskra judgment
pdurlej/platform#pull_request#822judge/p1,judge/patchwarden-candidateiskraviaopenclawRationale: This PR preserves a live Matrix discovery runtime fix with security-sensitive routing exposure, so it remains high-priority and needs focused Patchwarden review before merge.
Caveat: The packet still reports the canary as missing, so merge should wait for the review canary and route/header sanity check.
Structured openclaw.judge.v0 payload
Role: executor
Intent: checkpoint
Needs owner: yes
Read-only Matrix discovery smoke after live operator option B approval:
https://pdurlej.com/.well-known/matrix/client->200,Content-Type: application/json,Access-Control-Allow-Origin: *https://matrix.pdurlej.com/.well-known/matrix/client->200,Content-Type: application/json,Access-Control-Allow-Origin: *https://element.pdurlej.com/.well-known/matrix/client->200,Content-Type: application/json,Access-Control-Allow-Origin: *https://matrix.pdurlej.com/_matrix/client/versions->200,Content-Type: application/jsonI attempted the approved merge as
codex, but Forgejo returned405 User not allowed to merge PR. PR #822 remains green/mergeable and ready for a merge-capable actor.Note:
https://element.pdurlej.com/healthreturns404; that is outside this Matrix discovery fix and should be tracked separately if we want manifest health parity.Next: merge-capable actor can merge #822, or we repair the W6d merge actor/token lane first.
Operator live approval present for #822: read-only Matrix smoke passed, branch is current, and all latest CI/Patchwarden contexts are green. Approval recorded by Iskra as merge actor.