Skip to content

Versão web: armazenamento neste computador das telas de bot #861

Closed

Description

@lucastaonline

Contexto

Na versão web (#858), as telas de bot (miniapps) rodam num iframe isolado na origem separada monky-miniapps.vercel.app. Na primeira versão, o armazenamento "neste computador" dos miniapps (a aba Armazenamento do bot) ficou indisponível na web: o miniapp abre normalmente, mas não guarda nada no aparelho, e a seção mostra "indisponível". O armazenamento no servidor funciona normalmente.

No desktop, esse armazenamento é gravado em arquivos pelo processo main (apps/client/src/main/botStorage/).

Objetivo

Levar o armazenamento "neste computador" dos miniapps para a web, com o mesmo comportamento e as mesmas regras do desktop: decisão do usuário, cota, limpar e esquecer.

Abordagem sugerida

  • Extrair a regra para um módulo comum, como foi feito com as DMs em packages/dm: lógica única, com o armazenamento injetado.
  • Desktop: arquivos, como hoje. Web: IndexedDB na origem do app, nunca na origem dos miniapps.
  • O miniapp acessa pela mesma ponte (documentState/documentRequest), sem acesso direto ao armazenamento.

Critérios de aceite

  • Na web, o Monky pergunta antes de o bot guardar dados, como no desktop.
  • A cota, o "limpar" e o "esquecer" funcionam igual nas duas plataformas.
  • Sair da conta na web apaga esses dados.

Activity

  1. self-assigned this
    on Nov 5, 2026
  2. lucastaonline commented on Nov 6, 2026

    @lucastaonline
    CollaboratorAuthor

    💡 Como foi implementado & Decisões Técnicas

    • Resumo Didático: os miniapps dos bots na versão web agora guardam dados no navegador, com o mesmo consentimento e o mesmo limite do desktop. O motor de regras foi movido para o @monky/shared e é usado pelos dois lados. Sair da conta apaga tudo o que os miniapps guardaram.
    • Arquivos: packages/shared/src/botDeviceStorageEngine.ts, platform/web/webBotStorage.ts, webBotScreens.ts, webStorage.ts, main/botStorage/* e docs bots-armazenamento (PT/EN).
    • Boas Práticas: uma regra, um lugar. O desktop e a web compartilham o mesmo motor, com testes no shared.

    🧪 Como testar

    1. Na versão web, abra um miniapp que salva dados e aceite o consentimento.
    2. Recarregue a página.
      • Esperado: os dados continuam lá.
    3. Saia da conta.
      • Esperado: os dados dos miniapps são apagados.

    Entregue no PR #891.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions