moooon
Motir
Vibe the project. Bring an idea — Motir's three AI layers plan it, track it, and ship it, end to end. You're looking at Motir, built in Motir.
- Vibe Project
- Open Source
- AI Agent
- AI Loop
- 6
- requests
- 4
- upvotes
- 409
- planned
- 4,717
- shipped
- cli-rate-limit-story case 2 fails in the merge queue: the "waits Retry-After" check picks a concurrent request, not the retry
- Capacity alerts replace the 3-day alerts: queue-wait and queue-age alerts per pool, and read-latency and memory alerts for the graph servicePlanning capacity follows demand — a conversation turn never waits behind a planning run, the planning machines and the graph service grow and shrink on their own, and a load-tested cost ceiling is the only fixed limit
- Story integration test against the real database: once-per-episode across passes and evaluators, new episode after clearing, pool kind isolation, queue age with no worker, no 3-day alert, no fly scale textPlanning capacity follows demand — a conversation turn never waits behind a planning run, the planning machines and the graph service grow and shrink on their own, and a load-tested cost ceiling is the only fixed limit
- Rewrite docs/graph-service-api.md around the four capacity alerts: names, tags, config names of thresholds and windows, what each means, and no 3-day alert or scale commandPlanning capacity follows demand — a conversation turn never waits behind a planning run, the planning machines and the graph service grow and shrink on their own, and a load-tested cost ceiling is the only fixed limit
- Retire the 3-day "graph service: add a machine" alert: evaluateCapacity stops raising it, capacity samples still written, the alert table left unwrittenPlanning capacity follows demand — a conversation turn never waits behind a planning run, the planning machines and the graph service grow and shrink on their own, and a load-tested cost ceiling is the only fixed limit
- Run the queue-age check at every submit, every scale-out check and on the always-on graph service hosts, so a pool with all machines suspended is still watchedPlanning capacity follows demand — a conversation turn never waits behind a planning run, the planning machines and the graph service grow and shrink on their own, and a load-tested cost ceiling is the only fixed limit
- Graph read-latency and graph memory alerts from the capacity samples: one alert per episode naming the service or machine, the value and the thresholdPlanning capacity follows demand — a conversation turn never waits behind a planning run, the planning machines and the graph service grow and shrink on their own, and a load-tested cost ceiling is the only fixed limit
- Queue-wait and queue-age alerts per pool: evaluate each pool's measurements against its thresholds and raise one operator alert per episode with pool, value, threshold, window, machine count and free slotsPlanning capacity follows demand — a conversation turn never waits behind a planning run, the planning machines and the graph service grow and shrink on their own, and a load-tested cost ceiling is the only fixed limit
- Queue measurements per pool: p95 of startedAt minus createdAt over a window and age of the oldest queued job, by the decision's kind-to-pool tablePlanning capacity follows demand — a conversation turn never waits behind a planning run, the planning machines and the graph service grow and shrink on their own, and a load-tested cost ceiling is the only fixed limit
- Alert settings from config: every threshold and window read with the decision's placeholder as fallback, unusable values logged, and a test pinning each alert window above its scaler's windowPlanning capacity follows demand — a conversation turn never waits behind a planning run, the planning machines and the graph service grow and shrink on their own, and a load-tested cost ceiling is the only fixed limit
- Alert episodes in the database: a table and repository that open an episode once across evaluators and close it when the condition stopsPlanning capacity follows demand — a conversation turn never waits behind a planning run, the planning machines and the graph service grow and shrink on their own, and a load-tested cost ceiling is the only fixed limit
- Vitest (11/20): projectSquareDirectory cursor-pagination test times out at 15s under CI load and trips the in-flight probe
- (motir-core · design) The report pages, refined — full-width chrome with a bounded-height chart, thinned/angled x labels, the help-text toggle, Workload's Period + Days-back controls and reporter bar with an unassigned segment and legend, Created vs Resolved's bar form and series switches, and the Sprint report and Velocity sprint pickers — a delta on `design/reports/`
- headroomScaling e2e fails its beforeAll when a machine takes over 30s to answer /health
- Send to my agent can never start a run: the Fly exec API ignores the `stdin` field, so the launcher gets no run credentials and exits 1, and Motir hides the reason behind `launch_failed`Your own agent instances — host Claude Code, Codex or any sandbox agent in Motir's cloud on your own credential, see them on one page, work with one beside it, and let idle ones hibernate
- (motir-core) Billing & plans draws NO Motir CI line for the meta org, so moooon cannot see the CI usage its own fleet runner now incurs
- Vitest shard 5/20 times out on unrelated tests under CI load (passkeyBoundaryContract, followThePlannerGate)
- acceptance-plan-progress "stalled" spec times out waiting for the Planning tab's next poll under CI load
- The own-box PADDING / HEIGHT axis of the shape swap — decide the density scale, then route the 447 escapes onto it
- (motir-core) Story E2E — switching the style reshapes padding and height across the app, and the default style renders its pre-sweep values