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
- 5
- 需求
- 0
- 赞同
- 371
- 已规划
- 4,059
- 已发布
- acceptance-oauth-connect.spec.ts intermittently times out waiting for the consent screen's workspace option, and ejected a PR from the merge queue
- A local run that dies in its first minute reads ALIVE for 12 hours — `motir continue` refuses it `run_alive` until the age reap
- An agent that is `starting` (or `waking`, `hibernating`, `updating`) cannot be deleted — Delete is disabled and the service refuses, so a stuck boot leaves an agent nobody can remove
- Agent image update: two Update presses can both succeed when the first finishes before the second's guarded move
- (motir-core) The PAGES section — a Pages entry in the project sidebar and command palette, the `/pages` index listing the project's pages, and New page therePages — a project's documents: write a page, keep it in the project tree beside the work it describes, and keep its history
- (motir-core) Story E2E — Pages from the sidebar, New page, write a heading, list and code block, reload; two sessions' edits both survive; a viewer sees no editor; recorded as the paced acceptance videoPages — a project's documents: write a page, keep it in the project tree beside the work it describes, and keep its history
- (motir-core) Story VITEST gate — the coverage floor over the package's new modules and the app's page layer, the save-merge and derived-format seams on real Postgres, RLS and cross-tenant isolationPages — a project's documents: write a page, keep it in the project tree beside the work it describes, and keep its history
- (motir-core) The page at its own address — `/pages/[pageId]` with its title, loading, not-found and read-only states, and `PageEditorHost` binding the editor's propsPages — a project's documents: write a page, keep it in the project tree beside the work it describes, and keep its history
- (motir-core) Page IMAGES stay with their page — an upload route filing each image under its page (`attachment.page_id`), the orphan sweep sparing it, and its read gated by `page:view`Pages — a project's documents: write a page, keep it in the project tree beside the work it describes, and keep its history
- (motir-core) The page ROUTES — create, read and rename, and the save route taking one Yjs update as bytes, each page refusal mapped to its HTTP statusPages — a project's documents: write a page, keep it in the project tree beside the work it describes, and keep its history
- (motir-core) `pagesService` and the `page:view` / `page:edit` keys — create, read, rename and save in one transaction, the `page` domain in the catalog and built-in roles, `canViewPages` / `canEditPages`Pages — a project's documents: write a page, keep it in the project tree beside the work it describes, and keep its history
- (motir-core) `pageRepository` and the `PageStore` ADAPTER — the composition root `lib/pages/index.ts` binding `@motir/pages`' ports over Prisma per transaction, with a no-op `replaceDerivedLinks`Pages — a project's documents: write a page, keep it in the project tree beside the work it describes, and keep its history
- (motir-core) The page EDITOR in `@motir/pages` — the Tiptap 3 stack grown from `MarkdownEditor.tsx`, bound to the Yjs document, with autosave and saved / saving / offline states, app wiring as propsPages — a project's documents: write a page, keep it in the project tree beside the work it describes, and keep its history
- (motir-core) The SAVE procedure and the `PageStore` port in `@motir/pages` — create, rename, and merge one Yjs update into the stored state with its derived formats, refusing an over-size body or requestPages — a project's documents: write a page, keep it in the project tree beside the work it describes, and keep its history
- (motir-core) The `page` TABLE — migration with the Yjs body and derived columns, parent-xor-folder CHECK, cotenancy and cycle triggers, depth CHECK, RLS, and the Prisma modelPages — a project's documents: write a page, keep it in the project tree beside the work it describes, and keep its history
- (motir-core) The page DOCUMENT in `@motir/pages` — the page editor schema and headless Yjs ↔ ProseMirror JSON ↔ markdown ↔ plain-text conversions over itPages — a project's documents: write a page, keep it in the project tree beside the work it describes, and keep its history
- A member writes a page and reads it back — the project's Pages section with New page, the editor, saves that merge instead of overwrite, and the page's own addressPages — a project's documents: write a page, keep it in the project tree beside the work it describes, and keep its history
- (motir-gateway) A re-priced `qwen-plus` or `qwen3.7-plus` can never arrive green — its long-context tier sheet, base included, is a Go literal in `motir_provider_direct_tier.go` that the refresh's price proposal and a re-read of `provider_direct_prices.json` both leave behind
- (motir-gateway) `main` is red: the MOTIR-4332 seed E2E uses `origin/main` as its "before" baseline, so it broke itself the moment it merged
- (motir-meta) Pin the `motir-skills` release that carries `motir-continue` — move `tag=` to it, add `motir-continue` to `skills=` (seven skills), and `install.sh --check` and the drift guard report no drift