---
name: matrix_client_pc
lang: go
domain: infra
version: 0.1.0
description: "Cliente Matrix nativo para PC (Win/Linux/macOS) construido con Wails (Go) + React+Mantine+@fn_library. Login MAS OIDC, chat E2EE, calls LiveKit, widgets embebidos. Reemplaza Element Web para uso interno del registry."
tags: [matrix, element, wails, react, mantine, livekit, e2ee, widgets, agents, mas-migration, client]
uses_functions:
  - matrix_client_init_go_infra
  - mas_oidc_loopback_go_infra
  - keyring_token_store_go_infra
uses_types: []
framework: "wails"
entry_point: "main.go"
dir_path: "projects/element_agents/apps/matrix_client_pc"
repo_url: "https://gitea-dgg044oo04woo4ggcsws4gk0.organic-machine.com/dataforge/matrix_client_pc.git"
icon:
  phosphor: "chat-circle"
  accent: "#7c3aed"
---

## Goal

Cliente Matrix nativo PC. Login MAS OIDC, chat + E2EE, calls LiveKit, widgets embebidos (Matrix Widget API v2). Reusa funciones del registry para todo lo reutilizable. Frontend Mantine + @fn_library, backend Go con mautrix-go.

## Ejecutar

```bash
cd projects/element_agents/apps/matrix_client_pc
wails dev                 # hot-reload + Chrome devtools
wails build               # binario de release
```

## Arquitectura

```
main.go            entry: wails.Run + bind MatrixService
app.go             struct base App
matrix_service.go  bindings hacia frontend (Login/GetSession/Logout/...)
frontend/          React+Vite+TS+Mantine+@fn_library
  src/
    App.tsx        router (Login | Home)
    Login.tsx      boton "Sign in with Matrix" -> abre browser
    Home.tsx       muestra perfil + boton Logout
    fn_library/    symlink a frontend/functions/ui del registry
```

## Capability growth log

- v0.1.0 (2026-05-24) — baseline scaffold (issue 0147): Wails skeleton, login MAS OIDC, token persistence keyring SO.
