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
- 需求
- 4
- 贊同
- 491
- 已規劃
- 4,998
- 已發布
- Change-content-language service and route: owner/admin only, members refused, attributed with who/from/to/whenMotir 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
- Set the content language at the signup hook, the ensureDefaultWorkspace repair and createOrganization from the top Accept-Language entryMotir 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
- Schema: Organization.contentLanguage (backfilled en) and nullable per-field language columns on WorkItem and WorkItemTodoMotir 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
- Every organisation has a content language — chosen at registration from the registrant's browser (zh for Chinese, otherwise en), changeable by an admin for new work only, and recorded on every work content field writtenMotir 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
- The planning-session-needs-you acceptance spec's session-row locator is unscoped and fails strict mode intermittently
- plan.py's `--revise` corrects a plan in place under a hold and never walks, re-opens or closes it, and `--plan-id --target` takes only a committed key: the plan.py twin of MOTIR-8206 / MOTIR-8208 / MOTIR-8209
- acceptance-waiting-plan-carry.spec.ts times out waiting for the carried turn's submit, failing merge-queue runs on main
- Error: The destination stream closed early.
- 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