DeepSeek Harness Remote
DeepSeek Harness Remote: DeepSeek Harness 실행 PC와 모바일·PC를 안전하게 연결해 어디서나 작업 이어받기
이미 가진 스프레드시트를 업로드하고 음성으로 추적합니다. 프로젝트·가족·할 일 등을 한 곳에, 허위 숫자 없이
Upload the spreadsheet you already have and track it by talking. Projects, family and to-dos in one place, with numbers nobody makes up.
생산성TypeScript · CSSGitHub @NE-Intelligence온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Zaelyn.AI Portal — Next.js 16 · zaelyn.ai
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗El sitio de zaelyn.ai y el portal de proyectos. Next 16 + React 19, sin Tailwind: dos hojas de estilo con tokens propios.
Son dos marcas dentro de la misma página, y no se pisan porque cada una vive bajo su clase:
app/(sitio)/, app/sitio.css, prefijo .st-) va oscuro
siempre. El logotipo es blanco sobre negro y no existe otra versión, así que
el sitio se diseñó alrededor de eso en vez de pelearse con ello.app/(portal)/, app/portal.css, prefijo .pt-) va claro y
oscuro, con el sistema de diseño: cobalto #2f55f4 y coral #c2410c. El
degradado morado→cian de la marca aparece una vez, en el logotipo, y nunca
como estado de una interfaz.| Ruta | Qué es |
|---|---|
/ | La portada. Proyectos, familia y personal. |
/proyectos, /familia, /personal | Las tres áreas. |
/demo | El portal completo con datos inventados, y lo dice. |
/entrar?pase=… | Canjea el pase por una sesión. No es una página: pone una cookie y redirige. |
/app | Los grupos de la persona. Exige sesión. |
/app/g/<grupo>/<plan>?v=<vista> | El plan, en una de seis vistas. |
/salir | Entrega el token. Solo POST. |
No hay registro ni contraseña. La identidad ya existe y ya está verificada: es la cuenta de Telegram o WhatsApp de la persona. Montarle encima un alta con correo crearía una segunda identidad que habría que casar con la primera, y el día que discrepen no habría forma de saber cuál manda.
Así que el flujo es:
https://www.zaelyn.ai/entrar?pase=…. El pase vale
una vez y quince minutos: viaja por un chat, y lo que viaja por un
chat se reenvía y queda en el historial de un teléfono prestado./entrar lo canjea contra la API y lo cambia por una cookie httpOnly de
catorce días. El pase no llega nunca a una pantalla.El navegador nunca ve el token. Quien llama a la API es el servidor de Next, no la página: por eso no hace falta CORS y un XSS no se lleva la sesión.
Ni un número. Zaelyn devuelve el estado del plan ya medido —avance, esperado, criticidad, holgura, la curva, el avance por fase y hasta el párrafo de arriba— y estas pantallas lo pintan. Si el chat dice 34%, la pantalla dice 34%, porque las dos leen lo mismo.
Es la decisión que sostiene todo lo demás. Una pantalla que agrega por su
cuenta elige qué significa «atrasado», y entonces hay dos verdades sobre el
mismo plan y nadie puede decir cuál está mal. lib/plan.ts es un espejo
literal de los tipos del motor, y donde falta un dato la pantalla lo dice en
vez de rellenarlo.
lib/demo.ts es la excepción, y a propósito: ahí sí se calcula, porque ese
módulo ocupa el lugar del servidor y no el de la vista. Que el mismo componente
pinte el ejemplo y los datos reales sin cambiar una línea es la prueba.
npm install
cp .env.example .env.local # y pon ZAELYN_API
npm run dev
Sin ZAELYN_API el portal lo dice y ofrece /demo. Las fuentes están
vendorizadas en lib/fuentes/ —MuseoModerno, Prompt y JetBrains Mono, las tres
OFL— porque next/font/google las baja en tiempo de compilación y un sitio que
solo se puede compilar con acceso a Google Fonts no se compila.
components/portal/Chat.tsx + app/api/chat/{mensaje,voz,recibir}. Ver docs/DECISIONS.md P-0002.