# SESSION-CHECKPOINT — Spec 043 — Desk Client Activation Sync

> **Handoff entre agentes/sessões Cursor.** Ler **antes** de actuar. Actualizar **antes** de sair.

---

## Estado

| Campo | Valor |
|-------|-------|
| **Status** | `in_progress` (E2E activate OK; webmail gate UI pendente) |
| **Última actualização** | 2026-07-01 |
| **Agente / sessão** | Obsidian sync webmail gate + Spec 044 chat bruto |
| **Prioridade** | P1 (UI Activar webmail DomainAdmin.jsx) |

---

## Objetivo (1 linha)

Wizard → Desk Activar conta → FOSS → OpenPanel → Odoo → mail-bundle VM112.

---

## Feito

- [x] Produto FOSS `ligbox-mail-business` + catálogo 20 pacotes (ids 1–21, preços 1M)
- [x] Código mail-bundle VM112 (`internal/provision/mail-bundle`)
- [x] `OPS_INTERNAL_TOKEN` sincronizado VM122 → VM112 `.env` + restart wizard
- [x] mail-bundle dratcoin.com provisionado (mail.dratcoin.com, 25 seats)
- [x] Desk Spec 043 redeployed no container VM122 (`docker cp` + restart)
- [x] E2E Roger: `POST /api/v1/billing/accounts/2/activate` → `billing_active`
  - OpenPanel: `dratcoix` (reused)
  - Odoo partner #9 (reused)
  - Wizard mail-bundle: HTTP 200, `already_provisioned: true`
- [x] Script `configure-foss-catalog-pricing.sh` no repo
- [x] `foss-products.md` actualizado com IDs reais
- [x] Contrato `contracts/webmail-release-gate.md` + chat bruto Spec 043/044
- [x] Spec 044 documentada (tickets FOSS↔Desk)
- [x] Sync Obsidian VM130 + Spec Driver refresh

---

## Residual / follow-up

1. **FOSS `create_client`** — `client_id: null` apesar de `created: true`; investigar API admin client/create
2. **Deploy permanente VM122** — rebuild imagem Docker (código ainda via `docker cp`, não bake na imagem)
3. **Custom fields FOSS** — activar módulo Formbuilder e associar domain/manager_email aos produtos mail
4. **`foss_order_id`** — null no mail-bundle até FOSS order funcionar
5. **UI Painel Admin** — banner + card «Activar webmail» em `DomainAdmin.jsx` (backend gate OK)

---

## Smoke tests (validados 2026-07-01)

```bash
# mail-bundle GET (VM112)
curl -s -H "X-Ops-Internal-Token: $OPS_INTERNAL_TOKEN" \
  http://10.10.10.112:8090/api/internal/provision/mail-bundle/dratcoin.com

# Desk activate
curl -s -X POST http://10.10.10.122:8080/api/v1/billing/accounts/2/activate \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"plan_code":"ligbox-mail-business","manager_email":"001@dratcoin.com"}'

# FOSS pricing
curl -s -X POST "https://financeiro.ligbox.com.br/api/admin/product/get_list" \
  -u "admin:$FOSS_TOKEN" -d '{"per_page":5,"slug":"ligbox-mail-business"}'
```

---

## Referências

| Item | Path |
|------|------|
| tasks.md | `./tasks.md` |
| Catálogo 20 | `../035-ligbox-mail-bundles-foss-openpanel/LIGBOX-CATALOG-20.md` |
| mail-bundle API | `./contracts/mail-bundle-api.md` |
| webmail gate | `./contracts/webmail-release-gate.md` |
| chat bruto | `../../chat-bruto/CHAT_BRUTO_WEBMAIL_GATE_TICKETS_SPEC043_044_20260701.txt` |
| Conta teste | dratcoin.com billing #2 |

---

## Histórico de sessões

| Data | Agente | Resumo |
|------|--------|--------|
| 2026-07-01 | A | E2E parcial; webhooks; protocolo handoff |
| 2026-07-01 | B | FOSS product + mail-bundle código/deploy VM112 |
| 2026-07-01 | C | Pricing 20 pacotes; token VM112; E2E activate dratcoin OK |
| 2026-07-01 | D | Webmail gate contrato; Spec 044; Obsidian sync |
