Files
podman/shared/src/pod.ts
T
Kartikeya 5a03ad4d6b feat: Mongo-backed Pods with full CRUD + member management
Pods are persisted in MongoDB and CRUD'd via /api/pods (list/create/get/
update/delete + add/remove member). Shared Pod reshaped to a persisted entity
(members: string[], description, timestamps) + PodInput. Backend seeds Demo/
Frontend/Backend Pods on first run (Squad -> Pod rename). Frontend replaces
hardcoded teams with live data: PodCard (member chips add/remove, inline edit,
delete, join) + CreatePodForm; App fetches+mutates via API. Removes teams.ts/
TeamCard; gitignores test artifacts.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-27 15:49:05 -07:00

35 lines
985 B
TypeScript

/**
* A pod is one room of engineers working together (one LiveKit room per pod).
* Persisted in MongoDB; CRUD'd via /api/pods.
*/
export interface Pod {
/** URL-safe slug, e.g. "frontend-pod". Stable id used everywhere. */
id: string;
name: string;
/** GitHub repo the pod is working in, as "owner/name". */
repo: string;
description?: string;
/** Engineer display names PodMan uses when it speaks. */
members: string[];
createdAt: string;
updatedAt: string;
}
/** Fields accepted when creating or updating a pod. */
export interface PodInput {
name?: string;
repo?: string;
description?: string;
members?: string[];
}
export interface Engineer {
id: string;
/** Display name PodMan uses when it speaks ("Karti and Yahya are both..."). */
name: string;
/** GitHub login, used to map vision context to GitHub state. */
githubLogin?: string;
/** LiveKit participant identity for this engineer in the pod room. */
participantId?: string;
}