| 1 |
|
- |
# EveryCycle TODO
|
| 2 |
|
- |
|
| 3 |
|
- |
Open work only. Completed items move to `todo_done.md` (sibling) when one exists. Design notes go in `docs/<name>.md`, not folded into checkboxes.
|
| 4 |
|
- |
|
| 5 |
|
- |
Format rule: every actionable line is a `- [ ]` checkbox. Headings group phases and themes; do not put status updates in them.
|
| 6 |
|
- |
|
| 7 |
|
- |
Live roadmap: `docs/roadmap.md`. This file is the execution queue against that roadmap.
|
| 8 |
|
- |
|
| 9 |
|
- |
## Key Paths
|
| 10 |
|
- |
|
| 11 |
|
- |
Read these to orient before working on EveryCycle:
|
| 12 |
|
- |
|
| 13 |
|
- |
- `docs/roadmap.md` — threads, milestones, settled decisions
|
| 14 |
|
- |
- `docs/architecture.md` — component layout, executor model
|
| 15 |
|
- |
- `Cargo.toml` — workspace members
|
| 16 |
|
- |
- `crates/hal/src/lib.rs` — device enumeration entry point (Thread D1)
|
| 17 |
|
- |
- `crates/runtime/src/lib.rs` — executor trait host (Thread A1)
|
| 18 |
|
- |
- `crates/tui/src/lib.rs` — operator UX, audit screen target (Thread G)
|
| 19 |
|
- |
- `docs/hardware/mm-v1-bom.md` — MakeMachine v1 BOM (substrate)
|
| 20 |
|
- |
|
| 21 |
|
- |
---
|
| 22 |
|
- |
|
| 23 |
|
- |
## Phase 0 — First code, no GPU required
|
| 24 |
|
- |
|
| 25 |
|
- |
Hardware-free work to land before the A1 hardware arrives.
|
| 26 |
|
- |
|
| 27 |
|
- |
- [ ] Sketch `hal::DeviceInventory` shape (PCI, DRM nodes, NVML when present, hwmon). Land minimal enumeration that runs on any Linux box.
|
| 28 |
|
- |
- [ ] Define the executor trait in `runtime/` with cross-vendor activation-handoff signatures present from day one (forward-compat for A4 per roadmap line 43).
|
| 29 |
|
- |
- [ ] Sketch the native client API surface in `crates/api/` (or `crates/serving/` — see Phase 1 rename decision). Just types and the IPC shape; no implementation. This is Thread I starting at A1.
|
| 30 |
|
- |
- [ ] Write `docs/api-stability.md` capturing the v1-freeze gate, semver policy, and deprecation window from the new "Client API stability" settled decision.
|
| 31 |
|
- |
- [ ] Wire `everycycle-tui`'s audit screen against real `hal` data — even on a GT-710-only box. Thread G brand moment.
|
| 32 |
|
- |
|
| 33 |
|
- |
## Phase 1 — Open roadmap decisions
|
| 34 |
|
- |
|
| 35 |
|
- |
- [ ] Decide on rename `serving` → `api` (or `client-api`) and reframe Thread B from "serve models" to "first workload class" (item E from 2026-05-23 roadmap review). If yes, do the crate rename + B-thread heading rewrite in one pass.
|
| 36 |
|
- |
- [ ] Decide executor isolation final shape for the CPU executor (in-process dlopen vs sidecar; CUDA/ROCm are already forced sidecar).
|
| 37 |
|
- |
- [ ] Decide A1 dispatch planner sophistication (greedy heuristic vs real optimizer up front).
|
| 38 |
|
- |
- [ ] Decide first-boot online vs offline default.
|
| 39 |
|
- |
- [ ] Decide BMC agent A1-equivalent scope (just enumerate Redfish, or already running flashed OpenBMC).
|
| 40 |
|
- |
|
| 41 |
|
- |
## Phase 2 — A1 hardware
|
| 42 |
|
- |
|
| 43 |
|
- |
- [ ] Order Tesla P40 (24 GB GDDR5, Pascal) + GT 710 boot card. ~$230 per roadmap A1.
|
| 44 |
|
- |
- [ ] Install P40 in MakeMachine v1; verify thermals and PCIe link state via hal enumeration.
|
| 45 |
|
- |
- [ ] Vendor ggml-cuda in-tree at a known good commit; build glibc sidecar that wraps it.
|
| 46 |
|
- |
- [ ] First Qwen 0.6B Q8 smoke test (B1) end-to-end: audit → plan → serve.
|
| 47 |
|
- |
|
| 48 |
|
- |
## Phase 3 — Multi-client (Thread C, A2)
|
| 49 |
|
- |
|
| 50 |
|
- |
- [ ] Stand up two-client arbitration demo on a single P40 with fair-share scheduling. This is the load-bearing PipeWire-analogy demo per the revised Thread C.
|
| 51 |
|
- |
|
| 52 |
|
- |
## Phase 4 — Compatibility shims (Thread J)
|
| 53 |
|
- |
|
| 54 |
|
- |
- [ ] Ship J1: OpenAI Chat Completions shim as a separate process that consumes the native client API. Land alongside B2 (first useful responses).
|
| 55 |
|
- |
- [ ] Ship J2: llama.cpp server protocol shim.
|
| 56 |
|
- |
- [ ] Defer J3 (Ollama), J4 (vLLM/TGI), J5 (ComfyUI) until J1/J2 are stable.
|
| 57 |
|
- |
|
| 58 |
|
- |
---
|
| 59 |
|
- |
|
| 60 |
|
- |
## Business and governance (Make Creative, LLC)
|
| 61 |
|
- |
|
| 62 |
|
- |
Captured from the 2026-05-23 Fellow-lead framework discussion. Not coding work, but blocks scaling the project beyond solo operation.
|
| 63 |
|
- |
|
| 64 |
|
- |
- [ ] File "EveryCycle" trademark under Make Creative, LLC. Mark ownership controls brand identity through any future structural change.
|
| 65 |
|
- |
- [ ] Draft `docs/governance.md` charter: who decides what at Phase 1 (Fellow inside Make Creative). Includes technical-direction authority, brand/trademark gate, profit-share structure on MakeMachine sales attributable to EveryCycle.
|
| 66 |
|
- |
- [ ] Draft CLA / IP assignment template for contributors (Fellow, residents, interns, contractors). Standard work-for-hire; code stays MIT outward.
|
| 67 |
|
- |
- [ ] Decide profit-share parameters for the eventual Fellow lead (% of MakeMachine gross margin, duration, vesting).
|
| 68 |
|
- |
- [ ] Document Phase 2 trigger conditions (when to spin out `EveryCycle, LLC` as a subsidiary of Make Creative). Don't act on this until triggered.
|
| 69 |
|
- |
|
| 70 |
|
- |
---
|
| 71 |
|
- |
|
| 72 |
|
- |
## Backlog (not yet ordered)
|
| 73 |
|
- |
|
| 74 |
|
- |
- [ ] Ship .deb packaging for Ubuntu LTS 24.04 (the single supported target). Other distros are best-effort, no formal packaging commitment.
|
| 75 |
|
- |
- [ ] Thread E first deliverable: regression suite stub that records what hardware passes today.
|
| 76 |
|
- |
- [ ] Thread F: enumerate Redfish on MakeMachine v1's AST2600; defer OpenBMC flash.
|
| 77 |
|
- |
- [ ] Long-arc: when v1 API freeze approaches, write the migration document and the deprecation window policy as their own published doc.
|