All features03 / The reason stays.

Permanent Engineer Memory

Kashira carries engineering context across sessions by recording decisions, architecture, bugs, conventions, commands, research, and important file changes in a project journal you can inspect.

AvailableIncluded with: Plus
Project Memory
VIBEDEV
PERMANENT ENGINEER

Project Memory

Durable engineering notes Kashira carries across sessions: decisions, bugs, conventions, architecture, and important research.

OnAskOff

Prevent duplicate invite acceptance

BUG

Webhook retries could accept the same organization invite twice. Acceptance now uses the persisted invite event ID as its idempotency key and returns the existing membership on a repeat request.

Created Sep 21 at 14:15Updated Sep 21 at 14:15highactive2,184 memory tokens est.main @ 7cd841aserver/routes/invites.tsserver/services/memberships.tspnpm test invites
Open detailsClose details
DURABLE IMPLEMENTATION CONTEXT

The existing event ID is the durable boundary between delivery retries and membership creation. Do not introduce a second idempotency identifier unless the upstream event format changes.

Keep invite permissions server-authoritative

DECISION

The client may hide unavailable actions, but the API remains responsible for checking organization role, seat availability, and existing membership before an invite is created.

Created Sep 21 at 13:42Updated Sep 21 at 13:42highactive1,702 memory tokens est.main @ 81ac239server/policies/invites.tsapp/admin/invite-form.tsxpnpm test policies
Open detailsClose details
DURABLE IMPLEMENTATION CONTEXT

UI state is treated as guidance only. Authorization, capacity, and membership checks must run inside the invite transaction so alternate clients follow the same rules.

Return field errors in the shared API shape

CONVENTION

Invite validation uses the same field-error response as the rest of the admin API, allowing the existing form components to render errors without route-specific handling.

Created Sep 20 at 17:08Updated Sep 20 at 17:08highactive1,116 memory tokens est.main @ 630be42server/http/errors.tsapp/admin/invite-form.tsxpnpm typecheck
Open detailsClose details
DURABLE IMPLEMENTATION CONTEXT

New admin endpoints should use the shared validation error helper and return field names that match the client schema. Avoid adding endpoint-specific error envelopes.

Project memory oninvite-delivery3 durable notes
What it changes

Durable project memory for the decisions and actions that code alone cannot explain.