K
Kodama Vault
knowledge hub
Vault
HomeBoardMap of ContentChatConversasAuditoria
Agentes
AgentsIssuesTerminalPreviews
Sistema
MCPSetup MCPSettings
Brain
Global agent instructions
Análise custos migração — evitar senha no payloadLevantamento fluxo registro + duplicados StripeRelatório segurança + pentes finos (Cláudio)Revisão security concerns e race conditionsMagic link / esqueceu senha via SupabaseCorrigir erros pós-upgrade TypeScriptTestar PRs do agente Vault para mergeAnálise de 3 issues para iniciarErro no terminal do VSCodePR #173 — aguardando aprovação do LeoTestar fluxo ponta a ponta — criação de clients no StripePR #172 — testar e subir correção de funções deprecatedPitch de vendas SaaS — agendar call de conversãoOrganizar issues e bugs rápidos para a semanaMerge PR cadastro-novo — funcionalidades e correçõesCorrigir bugs PR #173 e #172 — image domainsPR mesosóico — página de acesso mobile + segurança OTPRefatoração de códigos — PR #202Ajustes em PRs abertos de ontemEstudo de jornada de compra e técnicas de fechamentoDefinir preço e entregável do produtoProspecção de reuniões para esta semanaAgente anti AI slop — centralização de conhecimento ConnfitPR #179 — resolver conflitos e erros de teste CLIAlinhamento de preços e usos da ConffitFix adicional para PR #183 — perfil do usuárioCorrigir estilização da Connfit para identidade visualSubir modificações no copy da ConnfitCriação de 4 campanhas no Meta AdsRevisão de PRs do GilinesExploração do Roblox EditorRelatório João — devolutiva TikTok ShopReunião presencial Zassi Uniformes — diagnóstico automaçõesCriar repositório de diagnósticos e relatórios de entrevistasDiagnóstico da ZassiGeração de relatórios para reuniões de fechamentoProposta Zassi — apresentação amanhãProspecção — Clínica Odontológica Dr. But
VPS Hermes — acesso e estrutura
Always Commit Push DeployHermes Voice GeminiHermes VPSKodama Prospects TrackerMEMORYObsidian VaultRoblox Mining Sim
OpenSpec -- Spec-Driven Development no VaultPlano de Teste — OpenSpec Vault Persistence
CaumzitoNyxzZanini
vek1-api — arquiteturavek1-api — contextovek1-api — decisões técnicasvek1-api — catálogo de endpointsvek1-api — gotchasvek1-api — integrações externasvek1-api — atividade recente
Claude Code — Setup MCP VaultClaude Desktop — Setup MCP Vault (remote)VS Code + Copilot — Setup MCP Vault
Skill — Carousel Designer (Paper Style)
Standup 2026-05-14Standup 2026-05-15Standup 2026-05-16Standup 2026-05-17Standup 2026-05-18Standup 2026-05-19Standup 2026-05-20Standup 2026-05-21Standup 2026-05-22Standup 2026-05-25Standup 2026-05-26Standup 2026-05-27Standup 2026-05-28Standup 2026-05-29Standup 2026-06-01Standup 2026-06-02Standup 2026-06-03Standup 2026-06-05Standup 2026-06-11Standup 2026-06-15Standup 2026-06-16Standup 2026-06-17Standups
MOCWelcome
v0.3
K
Kodama Vault
brain / projects / vek1-api

vek1-api — atividade recente

Atividade recente

Sprint 2026-05-20 → 2026-05-21 — Billing completo + endpoint público

Billing module (Fase 1 do pricing)

  • PR #24 7bf82e2 Stripe billing module + quota enforcement + webhook

    • services/stripe_client.py (singleton wrapper, lazy init)
    • services/billing_service.py — check_quota_or_block state machine 3-day grace, FIFO topup consume, bônus 50% primeira recarga, try_charge_overage automático Day 3, report_usage_to_stripe (worker)
    • routers/billing.py (10 endpoints /internal/billing/*)
    • routers/stripe_webhook.py (signature HMAC validation, 6 events: customer.subscription.{created,updated,deleted}, invoice.paid, invoice.payment_failed, payment_intent.succeeded)
    • requirements-docker.txt: stripe>=11.0,<19
    • 25 service tests + 18 endpoint tests + 7 webhook tests + 4 E2E reais Stripe test mode
  • PR #25 660b739 /chat quota enforcement + apscheduler + emails grace

    • services/chat_billing.py — helpers extraídos (resolve_company_id, quota_block_response, record_token_usage)
    • services/rag_service.py — inject quota check no process_query_with_functions; acumula tokens cross-iteration; BLOCK retorna mensagem genérica
    • apscheduler in-process cron 5min reportando usage_record pro Stripe Meter
    • services/billing_emails.py (Resend) — cota_warning_80, grace_started, grace_expired, charge_succeeded/failed
    • 223 tests passing + 4 E2E

Endpoint público billing

  • PR #26 b277363 /billing/plans-public (sub-router sem auth)
    • Usado pela landing /pricing pra consumir via HTTPS em vez de TCP direto Postgres (firewall corporativo às vezes bloqueia 5434, mas HTTPS 443 sempre passa)
    • Retorna só campos não-sensíveis: id, slug, name, monthly_cents, included_tokens, max_*, overage_per_million_cents. Sem stripe_*_id, sem timestamps.

Hot fixes pós-cutover anterior (2026-05-20)

  • e34d014 — no-op rate limit decorator (slowapi opcional)
  • 974fafc — auth cache: compara expires_at como naive UTC (fix timezone TypeError)

Sprint 2026-05-17 → 2026-05-20 — Domain endpoints + Better Auth backing store

Email + auth final

  • PR #23 94e80b1 — password hash em findAccountsByUser
  • PR #22 d3e663d — GET /verifications/by-{value,identifier}
  • PR #21 5262e8a — Resend transactional + /send-reset-password (X-Webhook-Token)

Domínio completo

  • PR #20 token-usage insert/list/summary
  • PR #19 product-file by id + PATCH + upsert-by-product
  • PR #18 product_files CRUD
  • PR #17 include company_id em evolution-instance lookup
  • PR #16 agents+leads extras pra cutover
  • PR #15 POST /webhook/abacate-pay
  • PR #14 checkout-state + abacate webhook helpers
  • PR #13 dashboard + messages + audit
  • PR #12 stores + company
  • PR #11 products + documents
  • PR #10 agents domain
  • PR #9 leads domain
  • PR #8 orders domain
  • PR #7 0b5ec7f Better Auth backing store (auth router + adapter purpose-built)

Stock sync

  • PR #6 stock-sync coverage hardening
  • PR #5 stock sync service + endpoints bidirectional

Function calling

  • PR #4 drop invalid product_id (LLM hallucinated slugs causando FK 23503)
  • e09ec60 integration suite DeepSeek real
  • b04300d sales_assistant prompt anti-skip
  • dd2ac9f skip backend persistence quando lead_id present
  • PR #3 create_order tool + prompt fechamento

Início

  • PR #2 /extract-lead + memory-aware /chat + order intake prompt
  • PR #1 align repo com stack deployada + remove leaked secrets
  • 2025-10-14 bf11231 — vazamento histórico (Opik keys no .env.docker) ainda não rotacionado
  • ffe8adc Migrate Railway → VPS Hermes (Postgres+pgvector + DeepSeek + Ollama)

Estado do remote (snapshot 2026-05-21)

  • HEAD pós PR #26 — /billing/plans-public
  • Branch: master
  • Container vek1-api rodando com Stripe + apscheduler + Resend ativos
  • Health: /health → llm + postgres + ollama: connected
  • Webhook Stripe configurado em https://vek1-api.kodama.solutions/webhooks/stripe

Arquitetura

vek1-api é single source of truth pra TODAS as mutations + integrações externas isoladas. Frontend vek1 fala via HTTP com 3 escopos de token.

Trajetória dos PRs:

  1. #1-#2 stack alignment + memória + extração lead → agente consultivo
  2. #3-#4 function calling com create_order → agente que fecha pedido
  3. #5-#6 stock sync bidirectional ERP
  4. #7 Better Auth backing store
  5. #8-#13 domain endpoints completos
  6. #14-#15 AbacatePay webhook → PIX completo
  7. #16-#19 extras cutover
  8. #20-#23 token usage + Resend + verification
  9. #24-#25 Billing module completo — Stripe subscription + metered + grace 3-day + emails
  10. #26 /billing/plans-public (landing acesso via HTTPS)

Próximo (planejado, não iniciado)

  • Anual com desconto (annual subscription)
  • Coupon codes
  • Multi-user / team seats por company
  • NFSe quando volume justificar
  • Live mode Stripe (atualmente test mode)
  • Rotacionar Opik keys vazadas no histórico (commit bf11231)
notas relacionadas
carregando…