-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.roadmap.pixie_worker
More file actions
3 lines (3 loc) · 5.96 KB
/
.roadmap.pixie_worker
File metadata and controls
3 lines (3 loc) · 5.96 KB
1
2
3
# .roadmap.pixie_worker mk2 — domain SSOT (peer perspective, pixie self surface), JSONL entry per line
# Header on next line; entries follow.
{"type":"header","kind":"domain","name":"pixie_worker","mk":2,"perspective":"peer","goal":"pixie Worker surface — Cloudflare Workers + Durable Object (worker/src 4 js + scripts/register.mjs = 692 LoC). 현재 land: POST / interactions (verify + /explain slash) + POST /wake (manual + cron */2 keep-alive) + GET / hint page + GatewayDO WebSocket (mentions handler with circuit breaker + persisted backoff state). mk1 narrative .roadmap Phase A (public HTTP /api/projects + /api/project/<name>) + Phase C (MCP server /mcp tools/list/get/search) 미구현. production gate = Phase A live HTTP + Phase C MCP tools live + DO gateway READY 안정성 (eviction-survival).","required_conditions":[{"id":"pixie_worker.cond.1","desc":"Phase A public HTTP API live — GET /api/projects (PROJECT_LIST 반환 200 application/json) + GET /api/project/<name> (LONG_TOPICS[name] 반환 200 / unknown 404) 두 endpoint live, 외부 curl round-trip 200","verifier":{"type":"script","path":"_smoke_curl","args":["https://pixie.dancinlife.workers.dev/api/projects"],"exit_zero_means_met":true,"smoke_target":"pixie.dancinlife.workers.dev/api/projects + /api/project/anima","status_emit":"__PIXIE_WORKER_PHASE_A__ <PASS|FAIL> <project_count>"},"status":"unmet","evidence":["worker/src/topics.js LONG_TOPICS + PROJECT_LIST export 가 data source 로 ready","worker/src/index.js fetch handler 에 url.pathname 분기 추가만으로 land 가능 (data store 추가 0)","mk1 narrative .roadmap Phase A spec 49 LoC 명시 (HEAD blob)"],"blocker_reason":"Phase A endpoint 실제 미구현 — worker/src/index.js url.pathname 분기 list = ['/wake', '/' (POST/GET)] 만, '/api/...' route 부재"},{"id":"pixie_worker.cond.2","desc":"Phase C MCP server live — POST /mcp 가 Model Context Protocol JSON-RPC 응답 (tools/list 에 list_projects + get_project + search_projects 3 tool, tools/call 각각 정상 응답)","verifier":{"type":"script","path":"_smoke_curl","args":["-X","POST","https://pixie.dancinlife.workers.dev/mcp","-d","{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"tools/list\"}"],"exit_zero_means_met":true,"smoke_target":"pixie.dancinlife.workers.dev/mcp","mcp_protocol_version":"2024-11-05","status_emit":"__PIXIE_WORKER_PHASE_C__ <PASS|FAIL> <tool_count>"},"status":"partial","evidence":["worker/src/topics.js LONG_TOPICS + PROJECT_LIST = MCP tools 의 data source 재사용 가능 (data layer READY)","mk1 narrative .roadmap Phase C 1 hr est + client config snippet 명시 (HEAD blob)","MCP protocol spec public (2024-11-05 revision) — JSON-RPC framing 표준화 ready"],"blocker_reason":"data source = ready (LONG_TOPICS + PROJECT_LIST), 그러나 MCP JSON-RPC framing + tools/list/call dispatcher + initialize handshake 모두 미land. cond.1 (Phase A) 보다 큰 작업 (~1 hr est mk1) — partial 분류 = data layer ready / transport layer 0%"},{"id":"pixie_worker.cond.3","desc":"DO gateway READY + circuit-breaker eviction-survival — GatewayDO WebSocket alive (heartbeat ack 30s), session_id + resume_url + backoff state 모두 storage.put 으로 persisted, eviction → revive 후 next_connect_allowed_at 보존됨 (cron */2 wake 가 4004 retry storm 안 일으킴)","verifier":{"type":"script","path":"_wrangler_tail","args":["pixie"],"exit_zero_means_met":true,"smoke_target":"npx wrangler tail pixie | grep '__GATEWAY_READY__'","persistence_check":"PERSISTED_keys_7_after_eviction_simulation","status_emit":"__PIXIE_WORKER_DO_READY__ <PASS|FAIL> <session_id>"},"status":"met","evidence":["worker/src/gateway-do.js PERSISTED 7 keys = session_id+seq+resume_url+next_connect_allowed_at+connect_attempts+last_close_code+last_close_reason+last_close_at (line 26)","FATAL_CODES Set 4004/4010-4014 명시 (line 21) + CIRCUIT_OPEN_MS 1hr (line 15)","blockConcurrencyWhile 으로 isolate boot 시 storage.get 복원 (line 48-54)","mk1 narrative .roadmap Status ✓ DO gateway bot land + ✓ Cloudflare Worker deployed (LIVE pixie.dancinlife.workers.dev)","scheduled cron */2 min wake (worker/src/index.js line 120-123)"],"blocker_reason":""}],"cross_link":{"sister_domains":["pixie_cli","pixie_translator"],"cli_dependency":"pixie_cli.cond.1 (topic-sync) — CLI 가 config/topics.json 변경 후 worker/src/topics.js LONG_TOPICS 와 sync 안 되는 split-brain 위험 (CLI=channel topic, worker=long-form explain 분리이지만 PROJECT_LIST 는 양쪽 다 hardcoded — sync drift verifier 후속 cycle 필요)","translator_dependency":"none (별도 sub-app, 자체 wrangler.toml + 자체 deploy)","anima_serving_cross_link":"anima/.roadmap.serving.cond.1 (http endpoint live smoke) — pixie_worker Phase A /api/projects 가 anima endpoint discovery 의 sibling 역할 가능 (mk1 narrative Phase D defer to Anima)","mk1_narrative_roadmap_link":"HEAD blob .roadmap Phase A (cond.1) + Phase C (cond.2) + Status 2026-04-24 ✓ DO gateway (cond.3 evidence)","triplet_audit_tier":"T1","triplet_pending":"raw 270/271/272/273 — worker/src/README.ai.md 1 + 4 module file (index/gateway-do/mentions/topics) module-level header 분할, promotion-day 2026-06-01 deadline","ai_native_handoff":"pixie/doc/pixie_self_mk2_tuning_landed_2026_05_02.ai.md §2 rank A pixie_worker 행 + §3.2 T1 권장 + §5 verifier seam pixie_worker 행","sibling_handoff":"pixie/doc/pixie_rank_a_2_domain_landed_2026_05_03.ai.md (this cycle land)"},"blockers":[{"id":"pixie_worker.blk.1","desc":"Phase A public HTTP API 미구현 — worker/src/index.js fetch handler 에 /api/projects + /api/project/<name> route 분기 미추가, cond.1 verifier 가 미구현 endpoint expect (live curl 404 예상)","type":"structural","status":"open","eta":"2026-06-01","resolution_path":"worker/src/index.js fetch handler 에 if (url.pathname === '/api/projects') return j(PROJECT_LIST) + if (url.pathname.startsWith('/api/project/')) return j(LONG_TOPICS[name]) 분기 + npx wrangler deploy → cond.1 verifier exit 0 확보. mk1 narrative est 10 min."}],"status":"active","since":"2026-05-03"}