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
- 489
- planned
- 4,827
- shipped
- (motir-core) The onboarding voice in English — motir.co's "vibe the project" positioning replaces "Plan with AI" / "Build with AI" in every onboarding string of `messages/en.json` (`onboarding.*`, `onboardingMigrate.*`, and the importer's `import.*`), plus the hero and section strings the new layout needsOnboarding that matches motir.co — the Motir look and "vibe the project" voice, a GitHub connect that does not lose you, no waiting on the index, a generated first-project name, and import proven against real Jira, Linear and Plane
- A planning job that loses its machine resumes the same plan by itself — when motir-ai reaps the job as abandoned and the plan holds saved work, motir-core starts the shipped Resume automatically, a bounded number of times, shows "resuming" while it waits, and only the session in flight is redone
- (motir-core) An open overlay does not follow a lost machine's automatic resume: it shows the generic failure and stops watching the plan, so the next loss is never relayed
- (motir-ai) A concurrent reader of a lapsed job answers "running" after another reader reaped it
- (motir-core) E2E with an acceptance video: a hosted plan whose job is reaped reads "resuming" in the rail and the overlay, then writing, with its saved proposal unchanged; past the bound it waits in To resume and Resume continues it
- (motir-core) Integration test: a reaped plan job with a saved proposal is resumed once whether the relay or the sweep sees it first, nothing saved / past the bound / a judged failure / a cancel / a stop / silence alone wait in To resume, and a resuming plan reads resuming and is not swept
- (motir-core) A plan resumed automatically reads "resuming" until its new job writes — `readPlanProgress` gains the state from the session's latest automatic resume, and the progress line, the overlay and the Workbench › Planning row render it in en and zh
- (motir-ai) Integration test on the real database — a lapsed lease is reaped on read with no tick and once under concurrent readers, a renewing lease is untouched, and a resume of a reaped job's plan re-authors no saved proposal and meters only the unfinished sessions
- (motir-core) Resume a lost machine's plan automatically — when a failure is recorded for a reaped hosted `plan` job on a plan with at least one proposal, core starts the shipped Resume itself, signed as the session's starter, at most twice per session, and every other failure waits in To resume as today
- (motir-core) A planning session records its automatic resumes — a migration and repository methods for the per-session automatic-resume count and the instant of the latest automatic resume, read and written under the session lock
- (motir-core) Core can tell a lost machine from every other failure — the job-state read and the stream relay carry motir-ai's `ai_job_abandoned` to the failure path as a lost-machine fact, while the person-facing failure reason stays as it reads today
- (motir-ai) Reading a job reaps it when its lease has lapsed — `getJobView` fails a dead `running` job `ai_job_abandoned` and closes its PlanningRun in the reaper's own statement, scoped to that job, so core learns a machine is gone without waiting for a worker tick
- PrismaClientKnownRequestError:
- Error: An error occurred in the Server Components render. The specific message is omitted in production builds to avoid leaking sensitive details. A digest property is included on this error instance…
- (motir-ai) Spike the machine swap on one throwaway machine — create a machine on a new image and run the release command without `fly deploy`, write retire state without a restart, cordon it out of the proxy, and destroy a machine from inside itself; record each answer
- GitHub compareCommits reads behind_by, so the code-graph drift count reads 0 when the default branch moved ahead
- Error: Connection terminated due to connection timeout
- A story run's approve-to-merge gate is withdrawn seconds after it is raised: a child promoted by the same green CI re-runs status derivation, which rolls the story back to Implemented over its still-Implemented children
- (motir-core) The monitor re-files a completed bug for an event from a release that predates its fix — the "recurrence" is the old build still serving
- DirectionDocFullPage hard-codes English copy and paints its breadcrumb and error body in --el-text-muted on the --el-surface page (AA fail)