DeepSeek Harness Remote
DeepSeek Harness Remote: DeepSeek Harness 실행 PC와 모바일·PC를 안전하게 연결해 어디서나 작업 이어받기
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Baseline is a Next.js + Supabase app for daily operations, triage, implementations, and secure calendar-derived briefing signals.
npm install
.env.local with your Supabase keys and optional provider keys (see Environment Variables below).npm run dev
Required for the app: NEXT_PUBLIC_SUPABASE_URL, NEXT_PUBLIC_SUPABASE_ANON_KEY, SUPABASE_SERVICE_ROLE_KEY. Optional: DEFAULT_USER_ID, LLM_ADMIN_USER_ID, and the settings below.
If you want MCP access outside the browser app, or you still maintain the legacy ChatGPT custom GPT fallback, also configure:
MISSION_CONTROL_API_KEY for legacy or internal machine-auth MCP callersMISSION_CONTROL_ACTIONS_API_KEY only if you still use the private ChatGPT custom GPT Actions fallbackMISSION_CONTROL_FAMCAL_API_KEY only if the FamCal Sunday brief reads your personal tasksMISSION_CONTROL_USER_ID for the user that machine-auth requests run asDEPLOYMENT_ROLE=main|mcp to split the protected main app from the public MCP deploymentMCP_CANONICAL_APP_URL for stable user-facing URLs returned from search / fetchMCP_UPSTREAM_API_URL for the public MCP deployment to call the protected main app upstream routesCALENDAR_SOURCE=local|ical|none
local: load events from local ICS file path (CALENDAR_LOCAL_ICS_PATH)ical: load events from WORK_ICAL_URLnone: skip ingest and only serve already-stored sanitized rowsWORK_ICAL_URL= optional remote Outlook/M365 ICS feed URLCALENDAR_LOCAL_ICS_PATH=data/calendar/work-calendar.icsCALENDAR_RETENTION_DAYS=183CALENDAR_FUTURE_HORIZON_DAYS=30CALENDAR_BODY_MAX_CHARS=4000CALENDAR_STORE_BODY=false (default privacy mode)ENABLE_CALENDAR_ENRICHMENT=false (reserved)PLANNER_ENABLE_CRITICAL_EXCEPTION=falsePLANNER_CRITICAL_EXCEPTION_THRESHOLD=90NEXT_PUBLIC_SPRINT_HOLIDAYS=2026-01-01,2026-05-25,2026-07-03 optional comma-separated YYYY-MM-DD list used by Today sprint pacing; excluded from workday counts in addition to weekendsMISSION_CONTROL_API_KEY: backend key used by legacy or internal machine-auth MCP callers and other existing external callersMISSION_CONTROL_ACTIONS_API_KEY: optional backend key used only by the legacy private ChatGPT custom GPT Actions integrationMISSION_CONTROL_USER_ID: required when either machine key is enabledMISSION_CONTROL_ACTIONS_API_KEY is a Mission Control backend key, not an OpenAI API keyMISSION_CONTROL_ACTIONS_API_KEY so /api/mcp remains reserved for the primary MCP machine-auth keyMISSION_CONTROL_FAMCAL_API_KEY: optional backend key for the FamCal Sunday brief (FamCal stores the same value as BASELINE_API_KEY). Give it its own value. It sees only personal to-dos: tasks that carry the personal tag themselves, have no sprint, and are either standalone (no project, application or section) or in a project that is itself tagged personal. Anything else, e.g. a personal task inside a work or build project, is left out of the list and is a plain 404:
GET /api/tasks (always filtered to tag=personal; only tag, limit, offset, status, owner, needs_review, due_soon, include_done, include_parked and include_missed are accepted, each at most once; any other parameter is a 400, even when empty), GET|PATCH /api/tasks/{id}, GET|POST /api/tasks/{id}/comments, POST /api/tasks/park/{id}. Everything else, and every DELETE, is 403.unresolved but their title ("Another task" / "A commitment"), status and linked ids are redacted.source_url), recurrence as its scheduling fields only (never the template's id), its project and section only when the project is itself tagged personal, and never an application or sprint (those are null), so a personal task filed under a work project shows nothing about it.status (Done, Parked, or back to an open status from Done/Parked), and (a date; clearing is a 400); any other field is a 400. Writes re-check the tag at write time; a status change that races another change is a 409.DEPLOYMENT_ROLE=main on the normal app deploymentDEPLOYMENT_ROLE=mcp on the public MCP-only deploymentMCP_CANONICAL_APP_URL=https://your-main-app.example.com on both deploymentsMCP_UPSTREAM_API_URL=https://your-main-app.example.com on the public mcp deploymentmcp deployment serves only /api/mcp, /oauth/*, /.well-known/*, /login, and /auth/callback/api/mcp-upstream and /api/mcp-upstream/* for bearer-token upstream calls onlyGET /api/focus: returns current active focus directive (active) and optional fallback notePOST /api/focus: creates a focus directive (supports implementation, stakeholder, task_type, query scopes)PATCH /api/focus/:id: updates an existing directive (including activation/deactivation)POST /api/focus/clear: clears active directive(s) for the current userdata/calendar/ are ignored by git./api/calendar returns only approved fields for brief generation and UI cards.calendar_event_context) and merged into /api/calendar for planner use.PATCH /api/calendar supports saving or clearing per-event meeting_context notes./login to request a magic-link sign-in email./auth/callback) exchanges the auth code and returns to app routes./api/mcp with MISSION_CONTROL_API_KEY.X-Mission-Control-Key: <MISSION_CONTROL_ACTIONS_API_KEY>./api/mcp and /api/mcp-upstream/*; general app APIs do not accept MCP OAuth bearer tokens.Mission Control now supports a public remote MCP deployment for hosted MCP-compatible LLM products.
ChatGPT and Claude should both prefer this MCP path unless you have a specific reason to keep the legacy ChatGPT Actions fallback.
https://<your-mcp-domain>/api/mcphttps://<your-mcp-domain>/oauth/authorizehttps://<your-mcp-domain>/oauth/tokenhttps://<your-mcp-domain>/oauth/registerhttps://<your-mcp-domain>/.well-known/oauth-authorization-serverhttps://<your-mcp-domain>/.well-known/oauth-protected-resource/api/mcpScope model:
mcp.read: read/list/search/fetch/briefing/calendar style operationsmcp.write: non-destructive mutationsmcp.delete: destructive deletes only; request this separately from the default read/write consentTool behavior:
search(query) and fetch(id) are additive retrieval tools.search returns stable URLs pointing to MCP_CANONICAL_APP_URL.Deployment outline:
DEPLOYMENT_ROLE=main.DEPLOYMENT_ROLE=mcp.MCP_UPSTREAM_API_URL on the public mcp deployment at the protected main app domain.MISSION_CONTROL_API_KEY and MISSION_CONTROL_ACTIONS_API_KEY only on main while migrating legacy clients.ChatGPT setup:
https://<your-mcp-domain>/api/mcp.mcp.read mcp.write consent in the browser.mcp.delete only if you explicitly want destructive tools enabled.Product note:
Prefer MCP for both ChatGPT and Claude. Use this section only if you still want the older private custom GPT plus Actions integration as a fallback.
You do not need an OpenAI API key for normal use inside ChatGPT. The only extra credential for this integration is MISSION_CONTROL_ACTIONS_API_KEY.
/openapi/chatgpt-actions-v1.yaml.X-Mission-Control-Key with MISSION_CONTROL_ACTIONS_API_KEY.morning brief, midday brief, eod brief, weekly review, monthly review, recommend my today list but do not sync yet, review these meeting notes and suggest updates, and apply these meeting notes to Mission Control.Notes:
/Users/owner/dev/Cooper Mission Control/mission-control/public/openapi/chatgpt-actions-v1.yaml./Users/owner/dev/Cooper Mission Control/mission-control/chatgpt-gpt-instructions.md.Apply Supabase SQL migrations from supabase/migrations/:
001_initial_schema.sql002_calendar_schema.sql003_task_comments_dependencies.sql004_add_task_type_task.sql005_focus_planner_brain.sql006_calendar_event_context.sql007_llm_model_eval.sql — LLM model catalog, user preferences, and usage telemetry008_task_status_workflow.sql — Renames task status enum values (Next->Backlog, Scheduled->Planned, Waiting->Blocked/Waiting) and adds In Progress009_add_quick_capture_feature.sql — Adds quick_capture to LLM feature CHECK constraints010_missing_rls_policies.sql — Adds missing RLS policies for inbox_items and status_updates027_add_mcp_oauth.sql — Adds OAuth client, authorization code, access token, and refresh token storage for public remote MCP028_add_project_focus_scope.sql — Adds project-scoped focus directives029_add_task_tags.sql — Adds tags for tasks030_add_project_review_history.sql — Adds durable project status history and persisted weekly/monthly review snapshotsAfter migration 008, the valid task_status enum values are:
Backlog | Planned | In Progress | Blocked/Waiting | Done
The old values (Next, Scheduled, Waiting) no longer exist.
Supported feature names for model preferences and usage tracking:
briefing_narrative | intake_extraction | quick_capture
Run checks:
npm run lint
npm run build
npm run test:planner-scoring
npm run test:calendar-sanitize
npm run test:mcp-oauth
Calendar API contract check (requires running app at http://localhost:3000 by default):
npm run dev
# in another terminal
npm run test:calendar-api
Optional env for contract test:
CALENDAR_API_BASE_URL (default http://localhost:3000)CALENDAR_TEST_BEARER_TOKEN (if you want to provide an existing token)due_atfollow_up_atpersonalMISSION_CONTROL_API_KEY or MISSION_CONTROL_ACTIONS_API_KEY, that value stops working for every caller (401, logged) until the FamCal key gets its own value.main deployment only; FamCal must call the main app origin, not the MCP proxy.