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
- 501
- planned
- 5,026
- shipped
- (motir-ai) Purge an organization's retained ledger when its retention ends — `POST /v1/orgs/:coreOrganizationId/purge-retained` removes the tombstone, its credit ledger and transactions and its Stripe ids, and refuses an org that is not a tombstoneRoles & permissions, refined — org Owner · Admin · Member, ROLE on the workspace and ACCESS on the project, an automatic Visitor on public projects, and a UI that offers each role only what it can do
- (motir-ai) Offboard an organization's AI tenant — `POST /v1/orgs/:coreOrganizationId/offboard` cancels the subscription, removes its code graphs, erases its projects, jobs, lessons and embeddings, and keeps `AiOrganization` as a tombstone holding only the credit ledgerRoles & permissions, refined — org Owner · Admin · Member, ROLE on the workspace and ACCESS on the project, an automatic Visitor on public projects, and a UI that offers each role only what it can do
- (motir-ai) An organization's billing pauses while it closes — `POST` / `DELETE /v1/orgs/:coreOrganizationId/closing` sets the Stripe subscription to cancel at period end and back, and a closing org is refused a new checkoutRoles & permissions, refined — org Owner · Admin · Member, ROLE on the workspace and ACCESS on the project, an automatic Visitor on public projects, and a UI that offers each role only what it can do
- (motir-core) The organization-deletion request — its table, migration and repository: one open request per organization held by a partial unique index, a due date stored at scheduling, and the erasure progress an interrupted sweep resumes fromRoles & permissions, refined — org Owner · Admin · Member, ROLE on the workspace and ACCESS on the project, an automatic Visitor on public projects, and a UI that offers each role only what it can do
- Deleting an organization, carefully — only the Owner can, after the org's name and a password step-up; it closes read-only for 30 days while every member is told and the Owner can cancel; then a resumable sweep erases every workspace, its Git and its motir-ai tenant, keeping only the billing record the law requiresRoles & permissions, refined — org Owner · Admin · Member, ROLE on the workspace and ACCESS on the project, an automatic Visitor on public projects, and a UI that offers each role only what it can do
- (motir-core) The antigravity sandbox profile fails intermittently on CI: `install-agent.sh` pipes the vendor installer straight into bash, so a non-script response dies as `syntax error near unexpected token ')'`
- (motir-core) A proposal body's `[label](motir-ref:<id>)` link WITHOUT the `planItem:` prefix is accepted at the append and ships as a dead link at approve — neither rewritten, nor reported unresolved, nor refused
- (motir-core · design) Roles at the workspace, drawn — the workspace Members page's role column, change-role control and migration-report notice, the Roles list / detail / editor moved from project settings into workspace settings, and the project Members page without its role controlsRoles & permissions, refined — org Owner · Admin · Member, ROLE on the workspace and ACCESS on the project, an automatic Visitor on public projects, and a UI that offers each role only what it can do
- Design — Motir's static brand colours in the new (monochrome) palette: tab icon + app-icon set, manifest, link-preview (OG) cards, email, and Stripe branding (motir-core)
- Release `@motir/cli` with `--allow-soft-block` — merge the Version Packages PR, then verify the published CLI and the sandbox images as a consumer
- (motir-core · test) The story's E2E and acceptance video — a Viewer, a Member and a custom role without the runs view key walk Plans, Approvals and Runs, and each meets exactly the tabs, rows and doors its keys openRoles & permissions, refined — org Owner · Admin · Member, ROLE on the workspace and ACCESS on the project, an automatic Visitor on public projects, and a UI that offers each role only what it can do
- (motir-core · test) The story's INTEGRATION gate — every room's read as a Viewer, a Member and a key-less custom role against the real resolver and datastore, the grant migration's before/after parity, and the coverage floor over the changed surfacesRoles & permissions, refined — org Owner · Admin · Member, ROLE on the workspace and ACCESS on the project, an automatic Visitor on public projects, and a UI that offers each role only what it can do
- (motir-core) The Runs room gets its Mine / Project tabs — `?view=mine|project` that composes with `?scope=<KEY>`, Project for `run:view_any`, Mine only for an actor who can start a run, and both sections' empty states per tabRoles & permissions, refined — org Owner · Admin · Member, ROLE on the workspace and ACCESS on the project, an automatic Visitor on public projects, and a UI that offers each role only what it can do
- (motir-core) The Plans room gets its Mine / Project tabs — `?view=mine|project` beside the plan-state filter, Project for `plan:view_any`, Mine only for an actor who can author or decide, and each tab's empty stateRoles & permissions, refined — org Owner · Admin · Member, ROLE on the workspace and ACCESS on the project, an automatic Visitor on public projects, and a UI that offers each role only what it can do
- (motir-core) The Approvals room gets its Mine / Project tabs — `listRecords` takes an explicit scope, Project needs `approval:view_any`, Mine shows only to an actor who can be routed or decide a gate, and each tab has its own empty stateRoles & permissions, refined — org Owner · Admin · Member, ROLE on the workspace and ACCESS on the project, an automatic Visitor on public projects, and a UI that offers each role only what it can do
- (motir-core) The Plans, Approvals and Runs nav doors open on the room's view-any key OR a way to act in it — `projectNavAccess.ts` gains an any-of requirement, the sidebar and ⌘K inherit it, and the three rows MOTIR-6172's inventory handed to this story are closedRoles & permissions, refined — org Owner · Admin · Member, ROLE on the workspace and ACCESS on the project, an automatic Visitor on public projects, and a UI that offers each role only what it can do
- (motir-core) The run reads take a scope — `project` asserts `run:view_any`, `mine` returns the runs the reader started, and a run the reader may not see is not-found on the index, the run modal and the dispatch-runs routeRoles & permissions, refined — org Owner · Admin · Member, ROLE on the workspace and ACCESS on the project, an automatic Visitor on public projects, and a UI that offers each role only what it can do
- (motir-core) The plan reads take a scope — `project` asserts `plan:view_any`, `mine` returns the conversations the reader started and the plans routed to them or decided by them, and a plan the reader may not see is not-found by URL and by MCPRoles & permissions, refined — org Owner · Admin · Member, ROLE on the workspace and ACCESS on the project, an automatic Visitor on public projects, and a UI that offers each role only what it can do
- (motir-core) Nobody loses a room they have today — existing custom roles gain `plan:view_any` and `run:view_any` by migration, a stored token grant holding `project:browse` reads both forward in `expandStoredGrant`, and `CLI_TOKEN_GRANT` / `DEFAULT_TOKEN_GRANT` carry themRoles & permissions, refined — org Owner · Admin · Member, ROLE on the workspace and ACCESS on the project, an automatic Visitor on public projects, and a UI that offers each role only what it can do
- (motir-core) The rooms' view-any keys — `plan:view_any` and `run:view_any` join the catalog beside `approval:view_any`, every built-in role that browses holds all three, and the item page's plan read moves off the authoring keyRoles & permissions, refined — org Owner · Admin · Member, ROLE on the workspace and ACCESS on the project, an automatic Visitor on public projects, and a UI that offers each role only what it can do