Um bilhão de pessoas, uma de cada vez
O gbrain expressa sua ambição sem pestanejar nas instruções que Garry Tan escreveu para seus próprios agentes de codificação: torne-se o próximo Postgres para memória, projetado para atender um bilhão de pessoas. Ele pode. Ele lançou-o sob MIT em abril de 2026 e confia nele com sua própria vida: a produção do cérebro por trás de seus agentes abriga mais de 140.000 páginas. A concepção é soberba. No entanto, ele faz uma suposição: essas bilhões de pessoas chegam uma instalação de cada vez. Uma máquina, um operador à frente do teclado com git e chaves API, e uma caixa que nunca dorme. Mesmo sua forma mais recente, o cérebro da empresa, mantém a suposição: toda equipe compartilha uma única instalação, dividida por login, e um operador ainda a executa.
O Memini é uma aposta na outra interpretação dessa ambição: o mesmo motor, sem forking, uma única implantação compartilhada projetada para atender muitas pessoas ao mesmo tempo, em seus telefones, nenhuma das quais verá um terminal. Seis semanas, um desenvolvedor, dez patches. Esses são os registros de campo e eles têm um tema: nada no gbrain estava quebrado, tudo foi assumido, e todo o trabalho foi levar essas suposições para um mundo multiusuário sem quebrar nenhuma delas.
O que é o gbrain
Uma base de conhecimento que se autoconecta a um gráfico de conhecimento tipado em cada escrita, com zero chamadas LLM na rota de escrita; recuperação híbrida com reclassificação; um modo pensar que responde com citações e uma lista explícita do que o cérebro ainda não sabe; e um ciclo de sonhos 24/7 enriquecendo tudo durante a noite.
Eu uso modelos todos os dias, e cada conversa termina em amnésia. O gbrain cura isso, desde que você seja a pessoa naquele teclado. Queria a mesma cura para as pessoas cujo único computador já está no bolso delas. Então, Memini: latim para “Eu me lembro”.
O movimento
A primeira decisão foi o que não fazer: nenhum fork. O gbrain foi de v0 a v0.42 em seu primeiro trimestre; um fork de um projeto se movendo tão rápido é um cemitério com passos extras. Em vez disso, o gbrain roda dentro do nosso backend como uma biblioteca interna-processo, vendada em um único commit exato, com dez patches que um script postinstall reaplica em cada instalação. Dois atributos do gbrain tornaram isso possível: ele já embarca um motor Postgres de primeira classe e seu núcleo contrato-primeiro faz as operações que precisamos importáveis como funções ao invés de comportamentos CLI.
O que o upstream assume é uma casa. Seu conhecimento vive em um repositório git de arquivos markdown, e pacotes de configuração e esquema vivem no disco. Nosso lar é uma caixa na nuvem cujo sistema de arquivos desaparece em cada implantação, construída para milhares de usuários mutuamente não confiáveis.
O ponto chave: um inquilino, uma transação
Tudo multiinquilino no Memini se reduz a um mecanismo. A segurança de linha do Postgres faz a isolação, com FORCE aplicado para que mesmo o dono da tabela não possa contorná-la. O gbrain nos encontrou pela metade: suas tabelas já são chaves por source_id, porque upstream é multi-fonte por design. Um usuário se tornou uma fonte. As políticas leem o inquilino de um parâmetro de sessão e definimos esse valor com a versão local da transação de set_config: o Postgres descarta isso automaticamente em COMMIT ou ROLLBACK. Em uma conexão compartilhada, essa é a diferença entre “lembramos de limpar” e “não há nada para limpar”. Uma chamada sem usuário anexa um sentinel vazio que resolve para NULL, e NULL corresponde a zero linhas. Feche com falha.
Um mecanismo atende a três modelos de execução: em uma solicitação HTTP o guard de autenticação coloca a id do usuário na async-local storage, um trabalhador de fila define o mesmo contexto antes de manipular os dados e um cron job fixa o contexto por usuário antes de fazer o trabalho desse usuário. A única exceção legítima, manutenção noturna que abrange todos os usuários, passa por procedimentos SECURITY DEFINER com predicados determinísticos, então a capacidade inter-tenant reside no código das migrações, não na aplicação.
Os métodos do motor do gbrain executam seu próprio SQL e dentro de nossa transação fixada, dois hábitos do cliente SQL dele se tornam perigosos. begin() não existe em um contexto de transação porque a aninhagem acontece através de savepoints, então qualquer método do motor que abra sua própria transação lançaria uma exceção. Pior ainda, reserve() reserva uma nova conexão de pool que carrega nenhuma configuração de tenant alguma: leituras vazias silenciosas ou escrita em dados de ninguém. Então cada chamada gbrain é envolvida, em um único ponto de garganta, por um Proxy sobre o objeto sql:
// condensado; roda dentro de uma transação que já fixou o tenant
get: (target, prop) => {
if (prop === ">'begin')
return (fn) => target.
Os dez patches
Nenhum dos dez patches corrige um bug. O exemplo mais limpo anunciou-se às três da manhã, quando o ciclo de sonho de todos os usuários falhou na mesma linha de código. Antes de sonhar, o gbrain toma um bloqueio, e a ID do bloqueio deve ser uma slug curta em minúsculas, porque as fontes upstream têm nomes como wiki ou ensaios. Nosso IDs de fonte são UUIDs de usuários, 36 caracteres de hexadecimais e hífens. A ID desempenha dois papéis: a chave de dados que cada consulta filtra e aceita UUIDs felizmente, e o ID do bloqueio, que não aceitou. Cada ciclo morreu antes da sua primeira fase, e todos os usuários acordaram com um cérebro que havia aprendido nada. O patch divide os dois papéis no bloqueio e apenas lá:
try {
assertValidSourceId(sourceId) // uma slug real passa sem alterações
return `${LEGACY_CYCLE_LOCK_ID}:${sourceId}`
} catch {
const token = createHash('sha256').update(sourceId).digest('O resto, de uma vez: re-exportações para que a biblioteca se incruste limpa e sem problemas, uma receita de provedor para que o tráfego noturno da LLM vá apenas para um provedor contratado diretamente (sem treinamento), um limite de custos ensinado não a falhar rigidamente em modelos que ele não pode orçar, checkpoints de resumo tornados opt-in porque o que é sensato no seu próprio laptop é uma responsabilidade compartilhada em uma máquina compartilhada, uma fase de síntese ensinada a agrupar memórias por similaridade de embedding porque o campo upstream para agrupá-las ainda não foi escrito por nada, e declarações de tipo geradas para que TypeScript estrito compile. O décimo patch era sobre bytes, e ganhou sua própria seção: o que o banco de dados diz em grande escala.
A mente à noite
No upstream, o ciclo dos sonhos é um cronograma na sua máquina: gbrain sonha, uma mente, sua própria fatura de API. Multiplique por cada usuário e a noite se torna um problema de orquestração. Uma fila espalha o ciclo por usuário. Fases são limitadas pelo nível de assinatura: todos recebem extração, e as fases de síntese que gastam sérias tokens acendem em planos pagos. Um contador Redis impõe um teto de gastos diários para que uma noite fora do controle não consuma um mês de margem. Cursos d'água permitem que um ciclo morto na metade da drenagem recomece onde parou. E o veredicto de conclusão é escrito apenas quando o ciclo realmente rodou: uma noite falha não pode marcar o dia como concluído, ou a janela de retentativa fecha silenciosamente e um cérebro do usuário pára quietamente de aprender. É assim que um fracasso multiinquilino soa: nada cai na frente de você, falha para todos os outros, à noite, educadamente.
O que o banco de dados diz em grande escala
Medimos antes do lançamento, em corporações de teste, com uma ressalva anexada: os dumps de documentos não são representativos das notas pessoais. A descoberta se manteve mesmo assim: o banco de dados não é dominado por texto do usuário. Chunk e fatos juntos eram 76% dele, porque cada chunk e cada fato carrega um embedding, e cada embedding é armazenado duas vezes: uma vez na linha, uma vez dentro da gráfica HNSW que torna a pesquisa vetorial rápida.
Isso fez com que a precisão de ponto flutuante fosse o maior alavanca. Mudar embeddings de vetor para halfvec reduziu os bytes vetoriais pela metade sem re-embedding e perda mensurável de recall: cerca de 16% do banco de dados inteiro e 19% da RAM gráfica quente de volta, por um pequeno patch. O patch existe porque de uma sutileza Postgres: CREATE INDEX valida a classe operadora contra o tipo de coluna antes que IF NOT EXISTS curta-circuite no nome, então o DDL upstream erro em uma coluna halfvec mesmo quando o índice já existe.
O design honesto de hoje: um HNSW global por coluna vetorial serve todos os inquilinos, e a isolamento é um filtro post-segurança de linha, não poda gráfica. Isso é a primeira arquitetura certa, e tem um teto. Escrevemos o teto como três paredes no caminho para 100.000 usuários: conexões Postgres, concorrência de trabalhadores para a frota noturna, e RAM para os gráficos quentes. O plano para a terceira parede: particione chunks e fatos por inquilino, e carregue o gráfico do usuário quando ele aparecer, desalojando-o após a inatividade. Não estamos construindo isso ainda deliberadamente. A matemática de capacidade depende de como as notas das pessoas reais se comportam. Primeiro uma coorte real, depois particionamento.
O build em números
Around the engine sits the surface a phone expects: Google e Apple sign-in, chat streamed over SSE onde uma conexão perdida reprisa a resposta final ao invés de cobrar um segundo geração, notificações push, assinaturas, e captura de voz com cotas por nível. Antes que o texto da nota deixe para um modelo externo, a pipeline detecta os identificadores que ela pode reconhecer pela forma: emails, números telefônicos, números de cartão e banco, números do Seguro Social dos EUA, endereços IP. Esses se tornam placeholders, e os valores brutos vivem em um cofre criptografado separado, isolado por usuário. Nomes e prosa correndo ainda viajam, porque é o que faz uma resposta útil. Assim como uma foto ou uma nota de voz no caminho para ser transformada em texto, já que não há nada a mascarar até que o texto exista. O enquadramento honesto é uma direção: mascare mais, perca menos, ao longo do tempo.
A primeira commit em 25 de maio de 2026, sete semanas após o gbrain ser lançado. Quarenta dias depois: mais de 800 commits por uma pessoa, cerca de 95.000 linhas de TypeScript e os aplicativos iOS e Android crescendo na mesma janela. A maioria do código foi escrita com Claude Code. A arquitetura, o modelo de tenancy e todas as dez decisões de patch são humanas; o que tornou a velocidade segura foi a disciplina: a dependência fixada, os guardas barulhentos, o contrato de tempo de compilação, testes contra um PostgreSQL real.
O que ofereceríamos para upstream
Nada disso pede ao gbrain para se tornar multi-tenant. Isso é nosso problema, e francamente, nosso produto. Mas parte dele serviria ao próprio mundo single-user do gbrain, e cada patch foi mantido mecânico e reaplicável precisamente para que o upstream permaneça upstream:
- Declarações de tipo e exportações de subpath. Nenhuma mudança de comportamento, e todo embebendor TypeScript precisa delas.
- Fato elegibilidade impulsionada por pacotes. Os próprios comentários do upstream marcam como planejado; nosso flip tem sido executado em produção.
- Uma barreira orçamentária que não falha de forma dura em modelos intencionalmente sem preço.
- Inclusão opcional halfvec, com nossas medições anexadas.
Três mais são conversas do que solicitações de pull: o token legal slug, terminando a superposição de esquema por origem, e agrupamento de similaridade de embebendor que se encontra até os átomos carregarem suas referências planejadas. Se qualquer um disso for útil, os patches estão a uma mensagem de distância: gbrain no GitHub.
Para onde isso vai
O Memini está em beta público para iOS hoje, com Android em teste fechado logo atrás: meminiai.com. A engenharia a curto prazo é o terceiro muro. Se a memória de longo prazo, isolamento do inquilino ou a beleza incomum de executar a obra-prima single-user de alguém para milhares de pessoas soam como seu tipo de problema, minha caixa de entrada está aberta: support@meminiai.com.
Para o outro tipo de leitor: Memini é um produto por assinatura cuja economia unitária é impulsionada pelo código, construído por uma pessoa em seis semanas em infraestrutura que é medida e não imaginada. Feliz em compartilhar os números: mesma caixa de entrada.
E uma última linha para Garry, se isso chegar a ele: gbrain é o sistema de memória mais pensado que li, e o Memini existe porque você o colocou no mundo sob MIT. Obrigado. Os dez patches são seus para perguntar.
O Memini é um produto independente, não afiliado com, endossado por ou patrocinado por Garry Tan ou Y Combinator. gbrain é software de código aberto usado sob a licença MIT.


