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
- suggestions
- 4
- votes
- 442
- planifiés
- 4 442
- livrés
- (motir-core) A GitLab repo can never be code-indexed — `gitlabProvider` implements only `fetchRepoTarball`, and the fleet path requires `resolveRepoTarballUrl`, so every dispatch throws before booting
- The ARCHIVED list read never projects `type`, yet its row type declares it — every archived row carries `type: undefined`
- (motir-core) E2E flake — `project-square-flow.spec.ts:196` asserts an org name with an UNSCOPED `getByText`, which the prod-build harness races into a strict-mode violation
- (motir-core) Prisma reports PERMANENT schema drift on `project_repository` — MOTIR-1907's hand-written PARTIAL index collides with the schema's plain `@@index([workspaceId])`, so the next `migrate dev` proposes to rename one into the other
- MOTIR-813's acceptance receipt can't publish — its artifact exceeds Vercel Blob's 100 MB file limit
- BUG (motir-ai) — the `augment` and `expand_item` handlers ALSO ignore `context.generateExplanations`, so two of the three plan-edit paths still drop explanations
- PLANNING BUG — the prose-vs-graph advisory FIRED on MOTIR-2075 at `likely-missing-edge` and dispatch read straight past it: the 7th instance, with its specified detector already shipped and green
- The starter's acceptance lane is NOT "absent, not skipped" — a job-level `if:` still reports a check, so every scaffolded project shows a permanently-skipping `Acceptance video` on every PR
- (motir-core) `defineJob` DISCARDS Inngest's concurrency `key`/`scope` — no job on the substrate can have per-tenant concurrency, so one org's backlog blocks every other org's
- PLANNING BUG — a card's own SCOPE BOUNDARY excluded the surface one of its acceptance criteria lives on, and that criterion was written against a path (`rebuild-on-SnapshotIntegrityError`) that exists only in a header comment and a test
- Make the gateway's flat ratio layer able to take a TIME-OF-DAY multiplier — inert by default, ready for DeepSeek's announced peak/off-peak pricing (motir-gateway)
- Seed the cache-read / cache-write credit rates per the pricing ADR — the change that actually stops overcharging cached input (motir-ai)
- Decision — does the provider prompt-cache discount PASS THROUGH to the customer, or does Motir keep it as margin? (ADR; sets the cache-read + cache-write credit rates)
- Give the credit ledger a cache-read / cache-write dimension — DTO + `ModelCreditRate` + `creditsForTurn`, inert until rates are seeded (motir-ai)
- Carry the prompt-cache token counts across the gateway→ai usage boundary — as an ADDITIVE miss/read/write triple, normalized per provider (motir-gateway)
- Prompt-cache reads are billed as fresh input — the cache-read count is DROPPED at the gateway→ledger boundary (DeepSeek cache hits cost 50× their true price)
- (motir-core) The convention read-back is mapped to a shape motir-ai never sends — `proposed`/`standard`/`repoKey` are ALWAYS null, so `/code-health`'s Convention tab renders the empty state for every project
- Status sync flips a card to Done on ANY merged PR, ignoring the PR's BASE branch — a stacked PR merged into a dead base strands the code while reporting Done
- Flaky: `rate-limit.test.ts > resets the budget when the window rolls over` asserts a race it does not control — a 120ms wall-clock window with two un-bounded HTTP calls inside it
- The priority glyph floor measures the SOURCE hue, but the only shipped consumer dilutes it to a 14% wash — a ΔE 10 pass renders as ΔE 4.6