Javis OS
Javis OS는 기업가를 돕는 에이전시 AI로, 업무를 지원하고 함께 성장합니다
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
SaaS de telemetria de produtividade para estações Windows, vendido a empresas clientes. Agente nativo de baixo consumo, backend multiempresa e painel web com hierarquia empresa → equipe → pessoa. A decisão de arquitetura mais importante do agente A especificação pede hooks WH_MOUSE_LL/WH_KEYBOARD_LL, GetForegroundWindow e GetLastInputInfo num serviço rodando como NT AUTHORITY\SYSTEM. Isso não funciona num único processo. Desde o Windows Vista, serviços rodam na Sessão 0, isolada da área de trabalho interativa:README 전문 보기 ↗
SaaS de telemetria de produtividade para estações Windows, vendido a empresas clientes. Agente nativo de baixo consumo, backend multiempresa e painel web com hierarquia empresa → equipe → pessoa.
newsecfocus/
├── agente/ Agente Windows em C# (.NET 8): serviço supervisor + coletor de sessão
├── supabase/ Schema SQL, RLS, migrations, agregados e Edge Functions
├── dashboard/ Painel Next.js 15 (App Router, Tailwind, Supabase) — pronto para a Vercel
└── documentos/ Conformidade LGPD, termo de ciência e guia de instalação
flowchart LR
subgraph Estacao["Estação Windows"]
direction TB
Coletor["Coletor (sessão do usuário)\nhooks, foreground, idle, domínio"]
Servico["Serviço supervisor (SYSTEM, Sessão 0)\nlança o coletor + sincroniza"]
SQLite[("telemetry.db\nSQLCipher")]
Coletor -- "1 registro/min" --> SQLite
Servico -- "lê lote" --> SQLite
Servico -- "CreateProcessAsUser" --> Coletor
end
Servico -- "POST lote (a cada 1h)" --> Edge["Supabase Edge Functions"]
Edge --> DB[("PostgreSQL + RLS")]
DB --> Agregados[("resumo_horario\nresumo_diario\nresumo_app_diario")]
Agregados --> Dash["Painel Next.js (Vercel)"]
A especificação pede hooks WH_MOUSE_LL/WH_KEYBOARD_LL, GetForegroundWindow e
GetLastInputInfo num serviço rodando como NT AUTHORITY\SYSTEM. Isso não funciona num
único processo. Desde o Windows Vista, serviços rodam na Sessão 0, isolada da área de
trabalho interativa:
GetForegroundWindow retorna NULL;GetLastInputInfo reflete o ócio da Sessão 0, não o do usuário.Por isso o agente é dividido em dois processos:
| Processo | Conta | Sessão | Função |
|---|---|---|---|
| Telemetria.Servico | SYSTEM | 0 | Windows Service. Lança o coletor em cada sessão ativa (WTSQueryUserToken + CreateProcessAsUser), sincroniza o buffer com o Supabase e cuida da matrícula. |
| Telemetria.Coletor | usuário logado | interativa | Instala os hooks, lê foreground/idle/domínio e grava 1 registro por minuto no buffer local. |
Os dois compartilham o mesmo telemetry.db (SQLCipher) em C:\ProgramData, com a chave
protegida por DPAPI de máquina.
A atividade crua tem 1 linha por minuto por estação: 1.440 por dia, mais de 26 milhões por ano num cliente de 50 estações. Nenhuma consulta do painel lê essa tabela. Três agregados — por hora, por dia e por aplicativo/dia — são consolidados de forma incremental a cada 10 minutos, com a classificação de produtividade já resolvida. É o que permite filtrar "2026 inteiro" sem varrer a base, e o que sustenta a retenção: a atividade minuto a minuto expira no prazo contratado, os resumos ficam para sempre.
Plataforma (revenda)
└── Empresa cliente organizations — plano, limite de estações, fuso, retenção
└── Equipe teams — pertence a 1 empresa
└── Colaborador employees — pertence a 1 equipe
└── Atividade
Papéis de acesso: OWNER e MANAGER (empresa inteira, administram), TEAM_LEAD (apenas a própria equipe, imposto pelo RLS) e VIEWER (leitura).
O operador da plataforma administra contas — criar empresa, plano, licenças, suspensão — e não tem acesso de leitura à telemetria dos clientes. Não é convenção de tela: não existe política de RLS que permita isso.
O agente coleta apenas metadados. Nunca registra:
Além disso: título de janela higienizado (e-mails e números longos removidos), ícone de
bandeja informando o usuário, janela de coleta configurável, retenção por empresa e termo
de ciência pronto em documentos/. Ver
documentos/CONFORMIDADE-LGPD.md.
.env.local e rode/deploy: veja dashboard/README.md.Guia unificado em documentos/GUIA-INSTALACAO.md.
| Componente | Situação |
|---|---|
supabase/ | aplicado num projeto real (PostgreSQL 17.6, região São Paulo): 7 migrations, 12 tabelas, 3 jobs de pg_cron ativos |
dashboard/ | compila e roda contra o banco real; tsc --noEmit e next lint limpos |
agente/ | compila, publica e coleta — o coletor gravou atividade real numa estação Windows |
Validado com 23.300 minutos de atividade sintética (5 pessoas, 3 equipes, 14 dias):
As 5 Edge Functions estão publicadas e testadas em produção (02/09/2026):
registrar-dispositivo, ingestao-lote, validar-codigo, provisionar-empresa,
convidar-usuario. O ciclo completo foi provado por chamada HTTP direta, sem precisar
instalar o agente numa máquina: validar-codigo reconheceu o código real e devolveu o
nome da empresa; registrar-dispositivo matriculou uma estação de teste e devolveu
device_id, token e a configuração remota; ingestao-lote aceitou um registro de
atividade com esse token, resolveu o colaborador automaticamente
(teste.ponta-a-ponta → "Teste Ponta-A-Ponta") e gravou a linha em activity_logs
vinculada a ele. Os dados de teste foram apagados depois de confirmados.
Falta para o ciclo completo:
Instalar.bat guiado
existe e está publicado, mas a instalação em si exige um clique humano na
confirmação do Windows — não testável nesta sessão automatizada).collection_enabled na resposta de ingestão.Sem certificado de assinatura de código, o MSI ficava bloqueado por SmartScreen e
antivírus de qualquer forma — então a distribuição para cliente passou a ser um
instalador guiado em agente/instalador-cliente/:
Instalar.bat — clique duplo, abre um PowerShell com interface própria (moldura,
cores, checklist de progresso), pede só o código de instalação numérico (gerado no
painel, em Administração › Empresa) e faz o resto sozinho: copia os binários, grava a
identidade da empresa no registro, cria e inicia o serviço Windows.Desinstalar.bat — remove o serviço; preserva o buffer local por padrão.publicar-cliente.bat — gera o pacote publicado (auto-contido, sem exigir .NET
instalado no cliente) pronto para zipar e enviar.O Instalar.ps1 tenta validar o código contra o servidor antes de instalar (mostrando o
nome da empresa), mas segue mesmo se a validação falhar — a matrícula de verdade
acontece no primeiro boot do serviço, contra o banco.
Continua faltando assinatura de código para o SmartScreen parar de alertar; o MSI
(WiX, em agente/instalador/) fica como opção pronta se um certificado for adquirido
depois — hoje é caminho secundário, não o entregue ao cliente.
@supabase/ssr, ExcelJS.