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
- 488
- planned
- 4,830
- shipped
- A plan revision leaves the plan `planned` instead of opening it, so core refuses every step and note the revision reports (409 PLAN_NOT_GENERATING) and the planner works in silence: a revision must re-open the plan (`planned` → `generating`) and close it again when done
- A plan revision cannot plan anything new: it has no conversation phase and lays no level (MOTIR-4696), so "expand this proposed story" or "plan that other epic too" can only rewrite the seeded proposals. A revision must settle its targets and walk them like any planning run, from any work item or plan item
- The overlay says "I have what I need — I'm writing the plan now" the moment a plan job starts, before the planner has finished the conversation phase; it should wait for `target_settled`, and never show if the job comes back with a question
- Design the Content language control and its confirm on the Organization General cardMotir in eleven languages — app.motir.co and motir.co in en·zh·ja·ko·de·fr·es·it·nl·pl·pt, per-language font sets, and work content in an org content language with per-user translation
- A plan revision cannot name the proposals it was handed: the prompt lists them as `planItem:<id>` but the pass registers them under the bare id, so `lay` / `propose_node` / `add_item` / `drill_into` / `validate_plan` / `author` refuse them, and the revision writer sends bare ids that core rejects as dangling
- The hosted planner fails the whole job when the task it must author has no type: before authoring, it should give the task a type, or, when no type fits, change it to a story and author it as one
- Design — a PROPOSED card can be set as the planning target, like a work item: "Set as target" on a proposed canvas card, the proposed target in the target tray, search and the turn label, and what happens to it when the proposal changes, is withdrawn or is approved
- Production's Sentry connection died again on 2026-10-06 18:30Z, after the MOTIR-5988 fix: a refresh still loses the rotated refresh token when Sentry answers after our 15 s abort, or when the machine stops between Sentry's answer and our commit
- plan.py silently skips a task with no type ("NOT AUTHORED … has no author cell") and ends the walk: it should give the task a type, or, when no type fits, change it to a story and author it as one
- A plan cannot propose changing a committed work item's kind (`kind` is not a `modify` patch key), and correcting a proposal's own kind is not checked against the container rules: a planner that finds a typeless task is really a container cannot make it a story
- The planning overlay never shows the plan's briefing: the rail ends a proposal with the canned "N added — it's on the canvas, nothing is saved yet" and "I can't change done work" bubbles, and `review.summary` is drawn nowhere in the overlay where plans are approved
- Production motir-core logs `MaxListenersExceededWarning: 11 close listeners added to [ServerResponse]` dozens of times an hour on both machines: some response gets more than 10 `close` listeners, and the source is not in our code
- `main` is red since #3512 (MOTIR-8188): the readonly-role test fails in CI, and `RAW_CEILING` (30) now counts 32
- Dead letters for `system.platform-meter-report` have stood undisposed for more than 7 days
- A Sentry connection whose refresh token is gone is re-polled every 5 minutes forever: each tick spends a provider call and logs "refresh refused; connection marked degraded", and production errors stop reaching the board
- plan.py drops the gaps an author's completeness RETRY raises: `Walk.author` returns the first session's result and never reads the retry's `gaps`
- The hosted plan briefing's section 3 lists every finished card in the 300-row neighbourhood skeleton (312 unrelated "is done and is left as it is" lines), and section 5 still reports gaps that the re-lay already closed
- A read-only Postgres role on the production motir-core and motir-ai databases, so an operator or a diagnosing agent can query production directly instead of shelling into a Fly machine
- Give motir_readonly a login on the two production Neon databases and store the connection strings for the sandbox
- The hosted walk lays children under a target whose rewrite was refused: the entry author's `author` call is refused, the model ends its turn, and `runWalk` sets `authoredTarget = true` anyway, so the plan keeps the target's old body