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
- 531
- planned
- 5,571
- shipped
- motir-core: the lesson permission keys — one to view, one to change the library — granted to adminTenant lessons are visible and controllable — a project sees what its planner learned, and decides what it keeps
- motir-ai: GET /v1/lessons — list and detail for ONE project's tenant lessons, pagedTenant lessons are visible and controllable — a project sees what its planner learned, and decides what it keeps
- An admin can SEE the project's lessons — list and detail in AI-planning settings, permission-guardedTenant lessons are visible and controllable — a project sees what its planner learned, and decides what it keeps
- (motir-core) A REFUSED trace is dropped like an over-cap one — register the video's receipt instead of discarding it
- (motir-core) Decide whether a partial acceptance publish is recoverable without re-running the lane — every byte is already in the retained report artifact
- (motir-core) Decision — does a stepped supervisor hold its Inngest concurrency slot while it sleeps? Measure it, and state what the fast lane may rely on
- (motir-core) A coalesced same-key burst does NOT reliably carry the LAST event — six SERIAL awaited sends 0 ms apart on the scheduler's clock ran as event 5
- Design the lessons surface in design/ai-settings — list, detail, empty, retired, and the doorTenant lessons are visible and controllable — a project sees what its planner learned, and decides what it keeps
- Planning bug: the corpus's conservation check cannot express a RESTATEMENT, and its historical baseline cannot conserve post-baseline text — MOTIR-3293 leaves conserve.py permanently red on thirteen packs
- A planning job that WAITS more than 15 minutes in the queue is dead on arrival — renewal cannot rescue it, because there is no live token left to renew with
- `stallDiagnosis` measures the span WE observe, not the window the SCHEDULER opened — a burst that fits on our clock can still miss it
- Approving a 15-item plan 500s — materialize runs in ONE interactive transaction on Prisma's DEFAULT 5s budget, and wires blocked_by edges ONE round trip per link
- `expand_item` and `replan` send NO `targetKeys`, so every expansion in a project shares ONE concurrency key — the project-wide serialization MOTIR-2788 explicitly rejected is what ships
- validate_plan is advertised on every pass and wired by NO handler — and augment offers modify_node/remove_node it cannot serve
- A planning job that takes longer than 15 MINUTES throws its work away — the job token is minted at submit and expires before the write-back, and the queue wait counts against it
- 8.20.6 A merge leaves a `deploy` card at In Review with NO note — the artifact-evidence gate throws out of the merge sync, which rethrows every error it cannot classify
- 8.24 (motir-core) A proposed dependency edge never reaches the plan canvas — the review model resolves an `add`'s own refs only, so a `modify`'s `patch.blockedByAdd` draws no arrow to the added card
- (motir-core) A leaked fleet_in_flight_slot defers an UNRELATED file's CI-runner admission — four test files clear it only in beforeEach
- (motir-ai) A merge KILLS the deploy in flight — MOTIR-3106's fix never reached this repo, and the `fly-deploy` job group does not protect a running release
- MCP write tools SILENTLY DROP a key their own schema forbids and report success — a card filed with `description` instead of `descriptionMd` lands with no body